MapControl 上的 MapHolding 操作不起作用...解决方法?
MapHolding action on MapControl doesn't work... a workaround?
从2015年开始hold方法好像不行了:
或者就是我不知道怎么用,反正我需要管理一个用PC或者手机看地图的用户。
我的地图就像一个导航器,它在移动时跟随用户的位置,但是当用户使用手势查看周围的地图时,我必须停止用户图钉的中心位置。
但我找不到了解用户何时移动地图的方法。文档告诉我们使用 holding 事件
https://docs.microsoft.com/it-it/windows/uwp/maps-and-location/display-maps
但是我在PC上试过了,我的应用没有进入holding事件。
我已经尝试了所有其他事件,只有 maptapped 和 actualcamerachanged 有效。
但我不知道如何区分用户移动或地图 .center 从应用程序移动。
有什么帮助吗?
谢谢!
MapHolding 不会在指针按下时立即触发。它会在延迟后按下并长按触发,并且只有在地图未移动时才会触发。它用于显示上下文菜单(如 right-click)之类的事情。
ActualCameraChanging 事件的 MapActualCameraChangingEventArgs 应该告诉您地图是由于用户交互还是由于以编程方式更改而移动。
我用一点 WinMerge 解决了问题,并尝试了一些
当用户尝试移动地图时,您可以在发件人中找到 FocusState.Pointer,如果没有 map.center,您会收到发件人
的 FocusState.Unfocused
private void Mappe_ActualCameraChanged(MapControl sender, MapActualCameraChangedEventArgs args)
{
if (sender.FocusState == FocusState.Pointer)
{
}
}
从2015年开始hold方法好像不行了:
或者就是我不知道怎么用,反正我需要管理一个用PC或者手机看地图的用户。
我的地图就像一个导航器,它在移动时跟随用户的位置,但是当用户使用手势查看周围的地图时,我必须停止用户图钉的中心位置。
但我找不到了解用户何时移动地图的方法。文档告诉我们使用 holding 事件 https://docs.microsoft.com/it-it/windows/uwp/maps-and-location/display-maps
但是我在PC上试过了,我的应用没有进入holding事件。
我已经尝试了所有其他事件,只有 maptapped 和 actualcamerachanged 有效。 但我不知道如何区分用户移动或地图 .center 从应用程序移动。
有什么帮助吗?
谢谢!
MapHolding 不会在指针按下时立即触发。它会在延迟后按下并长按触发,并且只有在地图未移动时才会触发。它用于显示上下文菜单(如 right-click)之类的事情。 ActualCameraChanging 事件的 MapActualCameraChangingEventArgs 应该告诉您地图是由于用户交互还是由于以编程方式更改而移动。
我用一点 WinMerge 解决了问题,并尝试了一些
当用户尝试移动地图时,您可以在发件人中找到 FocusState.Pointer,如果没有 map.center,您会收到发件人
的 FocusState.Unfocusedprivate void Mappe_ActualCameraChanged(MapControl sender, MapActualCameraChangedEventArgs args)
{
if (sender.FocusState == FocusState.Pointer)
{
}
}