使用MapElementClick事件控制特定的地图元素C#/ UWP

时间:2018-08-20 14:58:59

标签: c# uwp bing-maps

有人知道如何检索使用MapElementClick事件处理程序选择的mapIcon的属性吗?我的地图上有多个图标,当我单击其中的一个时,我需要知道与单击的元素关联的标题,位置和图像。到目前为止,我发现该处理程序的sender参数并不能指示我选择了哪个元素。任何信息或建议,将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果您订阅了MapControl.MapElementClick事件,则可以在此事件处理程序参数中使用MapElementClickEventArgs的实例来获取事件数据,该事件数据来自于该事件的MapElement。

private void MyMapControl_MapElementClick(MapControl sender, MapElementClickEventArgs args)
{
    var elements = args.MapElements;
    foreach (var item in elements)
    {
        Debug.WriteLine(item.Tag);
    }

    MapIcon element = args.MapElements.First<MapElement>() as MapIcon;
    Debug.WriteLine(element.Title);
}

否则,如果使用MapElementsLayer.MapElementClick事件,则可以在此事件处理程序参数中使用MapElementsLayerClickEventArgs的实例来获取事件数据,该事件数据来自于该事件的MapElement。

private void LandmarksLayer_MapElementClick(MapElementsLayer sender, MapElementsLayerClickEventArgs args)
{
    var elements= args.MapElements;
    foreach(var item in elements)
    {
        Debug.WriteLine(item.Tag);
    }

    MapIcon element = args.MapElements.First<MapElement>() as MapIcon;
    Debug.WriteLine(element.Title);
}