<esri:Legend.MapLayerTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}" > </CheckBox> <Image Height="15" Width="15" Source="/PlacePlay1;component/Assets/Images/InfoTag.png" MouseLeftButtonDown="Image_MouseLeftButtonDown" Tag="{Binding Label}" /> <StackPanel> <Button Content="Zoom" > <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:ZoomToLayerAction LayerID="MyFeatureLayer" TargetName="MyMap" /> </i:EventTrigger> </i:Interaction.Triggers> </Button> </StackPanel> <Slider Maximum="1" Value="{Binding Layer.Opacity, Mode=TwoWay}" Width="50" /> <Image Source="{Binding ImageSource}" VerticalAlignment="Center" Height="20" Width="20" Margin="2,0"/> </StackPanel> </DataTemplate> </esri:Legend.MapLayerTemplate>
<esri:ZoomToLayerAction LayerID="MyFeatureLayer" TargetName="MyMap" />
Private Sub ImageZoomToLayer_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Dim strLayer As String = sender.Tag Dim envLayer As ESRI.ArcGIS.Client.Geometry.Envelope = FindLayerExtent(strLayer) 'MessageBox.Show(envLayer.XMax.ToString) MyMap.ZoomTo(envLayer) End Sub Private Function FindLayerExtent(ByVal desiredLayer As String) Dim envLayer As ESRI.ArcGIS.Client.Geometry.Envelope = Nothing Dim myLayerCollection As ESRI.ArcGIS.Client.LayerCollection = MyMap.Layers Dim fl As FeatureLayer For Each l In myLayerCollection If TypeOf (l) Is FeatureLayer Then fl = l If (desiredLayer = fl.LayerInfo.Name) Then MessageBox.Show(desiredLayer) envLayer = fl.FullExtent FindLayerExtent = envLayer End If End If Next End Function
<esri:Map x:Name="MyMap" Background="White" WrapAround="True"> <esri:FeatureLayer ID="TrafficLayer" Url="...."> </esri:Map> <esri:Legend Map="{Binding ElementName=MyMap}" Height="290" Width="250" LayerItemsMode="Tree" ShowOnlyVisibleLayers="False" Margin="0,10,10,0"> <esri:Legend.MapLayerTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}"> </CheckBox> <Image Height="15" Width="15" Source="/PlacePlay1;component/Assets/Images/InfoTag.png" MouseLeftButtonDown="Image_MouseLeftButtonDown" Tag="{Binding Label}" /> <StackPanel> <Button Content="Zoom"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:ZoomToLayerAction LayerID="{Binding Layer.ID}" TargetName="MyMap" TargetObject="{Binding ElementName=MyMap}"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> </StackPanel> <Slider Maximum="1" Value="{Binding Layer.Opacity, Mode=TwoWay}" Width="50" /> <Image Source="{Binding ImageSource}" VerticalAlignment="Center" Height="20" Width="20" Margin="2,0" /> </StackPanel> </DataTemplate> </esri:Legend.MapLayerTemplate> </esri:Legend