Запретить прокрутку в MapControl UWP
Я играю с MapControl
в UWP, и я хотел бы запретить зацикливание при горизонтальной прокрутке с помощью щелчка левой кнопкой мыши, я хотел бы, чтобы мой виджет был похож на карту, а не на глобус, и карту, вращающуюся с помощью щелчка правой кнопкой мыши, я посмотрел в Интернете и не могу найти какие-либо намек.
2 ответа
Вы можете использовать CenterChanged
а также ZoomChanged
события из MapControl
наблюдать за изменениями положения карты.
В обработчике этих событий вы можете использовать GetLocationFromOffset
метод получения местоположения углов текущего вида и Center
чтобы получить текущее местоположение в центре, и если вы оставили вид "вашей границы", вы можете просто принудительно вернуть карту обратно, используя TrySetViewBoundsAsync
метод.
Вы можете отключить возможность поворота карты, установив свойство RotateInteractionMode - см.
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.maps.mapinteractionmode
Вы также можете отключить TiltInteractionMode.
Отключить режим панорамирования сложнее - прямой поддержки этому нет. Вы можете прослушивать измененные или изменяющиеся представления представления, как предложено выше, и затем принудительно возвращать представление назад, но будет сложно выбрать правильные границы, чтобы предотвратить перенос, но все же разрешить нормальную навигацию, и вы также, вероятно, увидите дрожание представления, когда вы попали в это состояние.