axMapControl1.Map并没有Legend这个属性
时间: 2024-05-16 16:15:17 浏览: 76
C#Arcengine属性查图[借鉴].pdf
如果 `axMapControl1` 是 ArcGIS 的 MapControl 控件,那么它的 `Map` 属性是 `IMap` 接口类型,不包含 `Legend` 属性。你可以使用以下代码获取地图控件中的图例:
```csharp
// 获取 MapControl 的 Map 对象
IMap map = axMapControl1.Map;
// 获取 Map 对象中的图例
ILegend legend = (ILegend)map
.Surroundings as ILegend;
```
这里使用 `IMap.Surroundings` 属性获取地图的周围元素,如果周围没有图例,那么它将返回 `null`。
另外,如果你使用的是 WPF 或 UWP 应用程序中的 ArcGIS Runtime 控件,则可以在 XAML 中添加 `Legend` 控件来显示图例。例如:
```xaml
<esri:MapView x:Name="MyMapView" />
<esri:Legend
MapView="{Binding ElementName=MyMapView}"
LayerItemsMode="Tree"
ShowLayerOptions="True"
ShowOnlyVisibleLayers="False" />
```
这里使用 `MapView` 属性绑定到 `MapView` 控件,以显示与地图相关联的图例。`LayerItemsMode` 属性设置为 `Tree`,以显示图层的分层结构。`ShowLayerOptions` 属性设置为 `True`,以显示图层选项。`ShowOnlyVisibleLayers` 属性设置为 `False`,以显示所有图层,而不仅仅是可见的图层。
阅读全文