<esri:Legend.LegendItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Source="{Binding ImageSource}" HorizontalAlignment="Center" VerticalAlignment="Center" Height="30" Width="50" /> <TextBlock Text="{Binding Label}" Margin="5,0,0,0" VerticalAlignment="Center" /> </StackPanel> </DataTemplate> </esri:Legend.LegendItemTemplate>
<esri:Legend.LegendItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <StackPanel.Resources> <esri:MultiplicationConverter x:Key="multiplicationConverter" /> </StackPanel.Resources> <Image x:Name="img" Source="{Binding ImageSource}" Stretch="Uniform" MinWidth="25" Height="{Binding Source.PixelHeight, ElementName=img, FallbackValue=25, Converter={StaticResource multiplicationConverter}, ConverterParameter=1.4}" Width="{Binding Source.PixelWidth, ElementName=img, FallbackValue=25, Converter={StaticResource multiplicationConverter}, ConverterParameter=1.4}" Margin="0,0,5,0"> </Image> <TextBlock Text="{Binding Label}" Margin="5,0,0,0" VerticalAlignment="Center" /> </StackPanel> </DataTemplate> </esri:Legend.LegendItemTemplate>
<esri:Legend.LegendItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Source="{Binding ImageSource}" Stretch="Uniform" MinWidth="20" Height="{Binding Tag.Item1}" Width="{Binding Tag.Item2}"/> <TextBlock Text="{Binding Label}" Margin="5,0,0,0" VerticalAlignment="Center" /> </StackPanel> </DataTemplate> </esri:Legend.LegendItemTemplate>
private void Legend_Refreshed(object sender, Legend.RefreshedEventArgs e) { if (e.LayerItem.LegendItems != null) foreach (var item in e.LayerItem.LegendItems) // loop on legendItems at the layer level SetTag(item, e.LayerItem.Layer); if (e.LayerItem.LayerItems != null) foreach (var subitem in e.LayerItem.LayerItems.Where(layerItem => layerItem.LegendItems != null).SelectMany(item => item.LegendItems)) // loop on legendItems at the sublayer level SetTag(subitem, e.LayerItem.Layer); } // Set the Tag with the expected size of the legend swatch private static void SetTag(LegendItemViewModel item, Layer layer) { double ratio = layer is FeatureLayer ? 1 : 1.5; // size based on the layer type (for the sample sake) var source = item.ImageSource as BitmapSource; if (source != null) item.Tag = new Tuple<double, double>(source.PixelHeight*ratio, source.PixelWidth*ratio); }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.