Отключение событий панорамирования и масштабирования в элементе управления Windows Phone - PullRequest
3 голосов
/ 27 ноября 2011

Я разрабатываю приложение для Windows Phone.

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

Однако, посмотрев, я не могу найти способ отключить события масштабирования, панорамирования и пролистывания в элементе управления картой.Поскольку эта карта является только предварительным просмотром, я не хочу иметь возможность использовать ее как карту (но так как я хочу иметь кнопки, она все равно должна быть картой).

Есть ли какая-либоспособ отключить события жестов на карте управления?Или есть лучший способ делать то, что я хочу?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 27 ноября 2011

Я недавно смотрел на решение этой проблемы для браузера WP7.Мое решение состояло в том, чтобы углубиться в визуальное дерево, захватить события манипуляции и отменить их:

http://www.scottlogic.co.uk/blog/colin/2011/11/suppressing-zoom-and-scroll-interactions-in-the-windows-phone-7-browser-control/

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

1 голос
/ 10 июля 2014

Попробуйте расположить непрозрачный элемент над картой с непрозрачностью = 0, это работает для меня:

<Grid>
    <maps:Map x:Name="Map" Height="200" />
    <Grid Height="200" Background="Black" Opacity="0" Tap="MapGrid_OnTap">
        <!--background is black to disable map pan & zoom, if backround is transparent, map still can capture gestures-->
    </Grid>
</Grid>
0 голосов
/ 04 сентября 2013
void MapControl_MapZoom(object sender, MapZoomEventArgs e)
{
    e.Handled = true;
}

Это предотвратит масштабирование элемента управления карты жестом, но масштаб карты по-прежнему можно масштабировать.Так что это обеспечивает интегральные уровни масштабирования для элемента управления карты.

0 голосов
/ 24 февраля 2012

Это то, что у меня работало на Windows Phone, чтобы отключить панорамирование.

Добавьте обработчик события для MapPan в элемент управления картой, а затем в обработчике установите событие как обработанное.

private void mapControl_MapPan( object sender, MapDragEventArgs e )
{
  e.Handled = true;
}

Это предотвратит панорамирование элемента управления картой. Должно работать так же для увеличения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...