<Style TargetType="esri:Legend"> <Setter Property="LayerItemsMode" Value="Flat" /> <Setter Property="LayerTemplate"> <Setter.Value> <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}" > </CheckBox> </StackPanel> </DataTemplate> </Setter.Value> </Setter> <Setter Property="MapLayerTemplate"> <Setter.Value> <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}" > </CheckBox> </StackPanel> </DataTemplate> </Setter.Value> </Setter> </Style>
<userControls:DraggableWindow IsOpen="True" x:Name="MapLegendWindow" Margin="0,280,20,0" VerticalAlignment="Top" HorizontalAlignment="Right" Width="212" Height="231" Padding="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Title="Map Legend" Background="{StaticResource BaseColor}"> <i:Interaction.Triggers> <i:EventTrigger> <actions:ToggleWindowVisibilityAction /> <!-- Hide at startup --> </i:EventTrigger> </i:Interaction.Triggers> <esri:Legend x:Name="Legend" Map="{Binding ElementName=MyMap}" LayerIDs="Schools, Base Layers" LayerItemsMode="Flat" ShowOnlyVisibleLayers="False" Refreshed="Legend_Refreshed"/> </userControls:DraggableWindow> </Grid>
private void Legend_Refreshed(object sender, Legend.RefreshedEventArgs e) { LayerItemViewModel removeLayerItemVM = null; if (e.LayerItem.LayerItems != null) { foreach (LayerItemViewModel layerItemVM in e.LayerItem.LayerItems) { if (layerItemVM.IsExpanded) layerItemVM.IsExpanded = false; } if (removeLayerItemVM != null) e.LayerItem.LayerItems.Remove(removeLayerItemVM); } else { e.LayerItem.IsExpanded = false; } }
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.