2015-12-20 18 views
5

Chcę dodać pinezki do mojej kontrolki MapControl, którą można stuknąć. Ponieważ klasa pinezki Windows 8.1 nie jest już dostępna, a UWP oferuje nam coś, co nazywa się ImageIcon (imo to trochę bzdura). Oto mój kod:Jak utworzyć zdarzenie MapIcon w UWP?

BasicGeoposition bg = new BasicGeoposition() { Latitude = 52.280, Longitude = 20.972 }; 
Geopoint snPoint = new Geopoint(bg); 
MapIcon mapIcon1 = new MapIcon(); 
mapIcon1.Location = snPoint; 
mapIcon1.NormalizedAnchorPoint = new Point(0.5, 1.0); 
MyMap.MapElements.Add(mapIcon1); 

Jak mogę obsługiwać zdarzenia (np. Dotknąć lub kliknąć)?

góry dziękuję

Odpowiedz

8

W UWP można umieścić znacznie więcej elementów w mapie i kliknij zdarzenie jest traktowane trochę inaczej - przyjrzeć MapControl.MapElementClick. Zdarzenia są obsługiwane przez MapControl - więc nie musisz subskrybować w każdym elemencie mapy - wspomniane wydarzenie zwróci listę klikniętych elementów. Przykładowy kod może wyglądać następująco:

<map:MapControl Name="MyMap" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MapElementClick="MyMap_MapElementClick"/> 
private void MyMap_MapElementClick(Windows.UI.Xaml.Controls.Maps.MapControl sender, Windows.UI.Xaml.Controls.Maps.MapElementClickEventArgs args) 
{ 
    MapIcon myClickedIcon = args.MapElements.FirstOrDefault(x => x is MapIcon) as MapIcon; 
    // do rest 
} 
+0

Dziękuję za ten :) –