我正在开发适用于Windows Phone的应用程序。
我的想法是在全景控制上显示地图 - 使用选定的图钉 - 按下时,会将用户带到更大版本的地图。
然而,看了之后,我找不到一种方法来禁用地图控件中的缩放,平移和轻弹事件。由于这个地图只是一个预览,我不希望能像地图一样实际使用它(但是因为我想要有图钉,所以它仍然需要是地图)。
有没有办法在地图控件上禁用手势事件?或者有更好的方法来做我想要的事情吗?
感谢。
答案 0 :(得分:3)
我最近看过为WP7浏览器解决这个问题。我的解决方案是深入研究可视化树,捕获操作事件并取消它们:
然而,对于Map控件,我怀疑有一个更简单的解决方案。尝试在地图顶部放置透明元素,然后使用它来捕获操纵事件。
答案 1 :(得分:1)
尝试在不透明度= 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>
答案 2 :(得分:0)
这对我在Windows Phone上有用,可以禁用平移。
将MapPan的事件处理程序添加到Map Control,然后在处理程序中设置要处理的事件。
private void mapControl_MapPan( object sender, MapDragEventArgs e )
{
e.Handled = true;
}
这将阻止地图控件平移。对缩放应该一样。
答案 3 :(得分:0)
void MapControl_MapZoom(object sender, MapZoomEventArgs e)
{
e.Handled = true;
}
这将阻止地图控件通过手势进行缩放,但地图仍可通过地图缩放级别栏进行缩放。因此,这可以实现地图控件的整体缩放级别。