首页 > 解决方案 > 使用 MapElementClick 事件控制特定地图元素 C#/UWP

问题描述

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

标签: c#uwpbing-maps

解决方案


如果您订阅了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);
}

推荐阅读