2017-07-30 37 views
1

我想要檢測用戶何時開始拖動MapControl以從屏幕中心分離,但是Drag*事件中的NONE未被觸發。MapControl事件未觸發;檢測用戶交互

map.MapTapped += Map_MapTapped; 
map.ActualCameraChanged += Map_ActualCameraChanged; 
map.DragEnter += Map_DragEnter; 
map.DragStarting += Map_DragStarting; 
map.DragLeave += Map_DragLeave; 
map.DragOver += Map_DragOver; 
map.ManipulationStarted += Map_ManipulationStarted; 
map.Tapped += Map_Tapped; 
map.PointerPressed += Map_PointerPressed; 
map.PointerMoved += Map_PointerMoved; 

,我看到解僱的唯一事件是MapTappedActualCameraChanged但是這兩個事件不火就拖,當我需要他們。

+0

如果這個【答案】(https://stackoverflow.com/a/45399826/ 7331395)的作品,然後考慮標記爲答案 –

回答

0

使用ActualCameraChanging上漲事件的同時拖動

<Maps:MapControl Name="MyMap" ActualCameraChanging="MyMap_ActualCameraChanging"/> 

使用ChangeReason檢查原因拖

private void MyMap_ActualCameraChanging(MapControl sender, MapActualCameraChangingEventArgs args) 
{ 
    if(args.ChangeReason == MapCameraChangeReason.UserInteraction) 
    { 
     //... 
    } 
} 
+1

'TransformOriginChanged'不會觸發,'CenterChanged'在我以編程方式與地圖交互時觸發,這是我不想要的。只有人類的互動。 – Gala

+0

@Gala怎麼樣'MapHolding'? –

+0

這是一個長按。 – Gala