在Windows Phone地图控件上禁用平移和缩放事件
本文关键字:缩放 事件 Phone Windows 地图 控件 | 更新日期: 2023-09-27 18:15:56
我正在为Windows Phone开发一个应用程序。
我的想法是在全景控件上显示地图-带有选定的图钉-当按下图钉时,用户会看到地图的较大版本。
然而,看了,我找不到一种方法来禁用缩放,平移和轻弹事件从地图控件。因为这个地图只是一个预览,我不希望能够像地图一样实际使用它(但是因为我想要有图钉,它仍然需要是一个地图)。
是否有办法禁用地图控件上的手势事件?还是有更好的方法来做我想做的事?
谢谢。
我最近研究了如何解决WP7浏览器的这个问题。我的解决方案是深入研究可视化树,捕获操作事件并取消它们:
http://www.scottlogic.co.uk/blog/colin/2011/11/suppressing-zoom-and-scroll-interactions-in-the-windows-phone-7-browser-control/但是,对于Map控件,我认为有一个更简单的解决方案。尝试在地图的顶部放置一个透明元素,并使用它来捕获操作事件。
尝试将不透明元素定位在不透明度=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>
这就是我在Windows Phone上禁用平移的方法。
为Map Control添加一个MapPan的事件处理程序,然后在处理程序中设置要处理的事件。
private void mapControl_MapPan( object sender, MapDragEventArgs e )
{
e.Handled = true;
}
这将阻止地图控件平移。
void MapControl_MapZoom(object sender, MapZoomEventArgs e)
{
e.Handled = true;
}
这将阻止地图控件通过手势缩放,但地图仍然可以通过地图缩放级别条缩放。这就实现了地图控件的整体缩放级别