我有一个MapControl
,想要检测用户是否已平移或缩放地图(或基本上生成了任何指针事件)。
我尝试了很多方法,但还是无法检测到指针事件。例如。 MyMapControl.PointerPressed += ...
,MyMapControl.AddHandler(UIElement.PointerPressedEvent, ..., true)
,Window.Current.CoreWindow.PointerPressed +=
,((Page)this).PointerPressed +=
,但未调用它们。在MapControl
外面向下触摸时会发出页面和窗口的事件,但在MapControl
内部触及时不会发出。
如果我放置了涵盖MapControl
的内容,例如一个Rectangle
,它会获取事件,但它也会消耗它们,因此它们无法到达MapControl
。我希望覆盖层可以看到事件但不消耗它们,但到目前为止还没有成功。
感谢任何帮助!
答案 0 :(得分:0)
MapTapped
事件处理点击地图,通用Tapped
事件无效。
对于平移或缩放,我使用LoadingStatusChanged
事件并查找mapControl.LoadingStatus == MapLoadingStatus.Loaded
以了解用户何时停止操作地图。
请注意,地图上绘图元素之类的内容也会触发LoadingStatusChanged
。如果这是您需要处理的情况,您可以将地图的中心和缩放级别存储在某处,然后在偶数触发时将这些值与地图的当前中心/缩放级别进行比较以了解地图真的被操纵了。
如果您正在使用Interactivity,我会编写一个行为,如果您需要,可以执行所有这些操作。