触摸事件拦截和路由
问题描述:
我有一个MapControl,我在地图的中心显示一个MapIcon,我每秒更新一次并重新居中。这很好。触摸事件拦截和路由
但现在,我试图禁用MapControl的所有手势和触摸事件而没有成功。最近我已经完成了这项工作,禁用PanInteractionMode等四个InteractionMode。但是,如果您尝试用两个手指拖动地图,它仍然被拖动,这是不可接受的。
最重要的是,MapControl位于Pivot控件中,我想将MapControl事件路由到Pivot,以便它可以检测地图上的滑动手势。
我的梦想太多了吗?
答
当我将以下四种交互模式设置为Disabled
时,我无法再与地图交互。我正在使用Windows 10创作者更新。
但即使加上设置IsHitTestVisible
到False
,MapControl
仍然会吞下任何输入。解决方法是覆盖透明Rectangle
。这样Pivot
上的滑动将再次起作用。
<PivotItem Header="PivotItem 0">
<Grid>
<Maps:MapControl PanInteractionMode="Disabled"
RotateInteractionMode="Disabled"
TiltInteractionMode="Disabled"
ZoomInteractionMode="Disabled"
IsHitTestVisible="False" />
<Rectangle Fill="Transparent" />
</Grid>
</PivotItem>
太棒了,谢谢!那就是诀窍。 – Adrian