如何在UWP中创建MapIcon事件?

时间:2015-12-20 01:42:32

标签: c# xaml maps uwp

我想在我的MapControl中添加可以点击的图钉。由于Windows 8.1图钉类不再可用,UWP为我们提供了一个名为ImageIcon的东西(imo有点蹩脚)。这是我的代码:

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);

如何进行事件处理(如点击或点击)?

提前谢谢

1 个答案:

答案 0 :(得分:8)

UWP 中,您可以在地图中添加更多元素,并且点击事件的处理方式略有不同 - 请查看MapControl.MapElementClick。事件由 MapControl 处理 - 因此您不需要在每个地图的元素中订阅 - 所提到的事件将返回被点击元素的列表。示例代码如下所示:

<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
}