Запретить прокрутку в MapControl UWP

Я играю с MapControl в UWP, и я хотел бы запретить зацикливание при горизонтальной прокрутке с помощью щелчка левой кнопкой мыши, я хотел бы, чтобы мой виджет был похож на карту, а не на глобус, и карту, вращающуюся с помощью щелчка правой кнопкой мыши, я посмотрел в Интернете и не могу найти какие-либо намек.

horizontal_scrolling

rotating_issue

2 ответа

Вы можете использовать CenterChanged а также ZoomChanged события из MapControl наблюдать за изменениями положения карты.

В обработчике этих событий вы можете использовать GetLocationFromOffset метод получения местоположения углов текущего вида и Center чтобы получить текущее местоположение в центре, и если вы оставили вид "вашей границы", вы можете просто принудительно вернуть карту обратно, используя TrySetViewBoundsAsync метод.

Вы можете отключить возможность поворота карты, установив свойство RotateInteractionMode - см.

https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.maps.mapinteractionmode

Вы также можете отключить TiltInteractionMode.

Отключить режим панорамирования сложнее - прямой поддержки этому нет. Вы можете прослушивать измененные или изменяющиеся представления представления, как предложено выше, и затем принудительно возвращать представление назад, но будет сложно выбрать правильные границы, чтобы предотвратить перенос, но все же разрешить нормальную навигацию, и вы также, вероятно, увидите дрожание представления, когда вы попали в это состояние.

Другие вопросы по тегам