<esri:Map x:Name="ShorelineAssessmentMapperMap" Background="White" RenderTransformOrigin="-2.037,-2.183" IsLogoVisible="False" Extent="-8621895,4355084,-8308076,4616144" ExtentChanged="ShorelineAssessmentMapperMap_ExtentChanged" > <esri:ArcGISTiledMapServiceLayer ID="Base map" Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" Visible="True" /> <esri:ArcGISTiledMapServiceLayer ID="VGIN 2013 imagery" Url="http://gismaps.vita.virginia.gov/arcgis/rest/services/VBMP2013/VBMP2013_WGS/MapServer" Visible="False" /> <esri:ArcGISTiledMapServiceLayer ID="USGS topos" Url="http://services.arcgisonline.com/ArcGIS/rest/services/USA_Topo_Maps/MapServer" Visible="False" /> <esri:ArcGISDynamicMapServiceLayer ID="Data" Url="http://cmap.vims.edu/ArcGIS/rest/services/ShorelineAssessmentMapper/MapServer" VisibilityChanged="ArcGISDynamicMapServiceLayer_VisibilityChanged" PropertyChanged="ArcGISDynamicMapServiceLayer_PropertyChanged" /> </esri:Map> <Grid HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,10,10,0" > <Image x:Name="MyMagnifyImage" Source="http://help.arcgis.com/en/webapi/silverlight/samples/Assets/images/magglass.png" Canvas.ZIndex="10" Margin="25, 20, 20, 25" Stretch="UniformToFill" Width="32" Height="50" MouseLeftButtonDown="MyMagnifyImage_MouseLeftButtonDown" /> </Grid> <Canvas> <esri:Magnifier x:Name="MyMagnifier" ZoomFactor="3" Canvas.ZIndex="10" Map="{Binding ElementName=ShorelineAssessmentMapperMap}" Opacity="1.0" Canvas.Left="-10" Canvas.Top="50" d:IsHidden="True" > <esri:Magnifier.Layers> <esri:ArcGISTiledMapServiceLayer ID="Base map" Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /> <esri:ArcGISTiledMapServiceLayer ID="VGIN 2013 imagery" Url="http://gismaps.vita.virginia.gov/arcgis/rest/services/VBMP2013/VBMP2013_WGS/MapServer" /> <esri:ArcGISTiledMapServiceLayer ID="USGS topos" Url="http://services.arcgisonline.com/ArcGIS/rest/services/USA_Topo_Maps/MapServer" /> <esri:ArcGISDynamicMapServiceLayer ID="Data" Url="http://cmap.vims.edu/ArcGIS/rest/services/ShorelineAssessmentMapper/MapServer" /> </esri:Magnifier.Layers> </esri:Magnifier> </Canvas>
private void MyMagnifyImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (!MyMagnifier.Enabled) { foreach (var layer in MyMagnifier.Layers) { var mapLayer = ShorelineAssessmentMapperMap.Layers.Where(l => l.ID == layer.ID).FirstOrDefault(); if (mapLayer != null) layer.Visible = mapLayer.Visible; } } MyMagnifier.Enabled = !MyMagnifier.Enabled; } private void ArcGISDynamicMapServiceLayer_VisibilityChanged(object sender, System.EventArgs e) { var mainDynamicLayer = sender as ArcGISDynamicMapServiceLayer; var magnifierDynamicLayer = mainDynamicLayer == null ? null : MyMagnifier.Layers.OfType<ArcGISDynamicMapServiceLayer>().Where(l => l.ID == mainDynamicLayer.ID).FirstOrDefault(); if (mainDynamicLayer != null && magnifierDynamicLayer != null) magnifierDynamicLayer.VisibleLayers = mainDynamicLayer.VisibleLayers; magnifierDynamicLayer.Refresh(); } private void ArcGISDynamicMapServiceLayer_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "Visible") { var mainDynamicLayer = sender as ArcGISDynamicMapServiceLayer; var magnifierDynamicLayer = mainDynamicLayer == null ? null : MyMagnifier.Layers.OfType<ArcGISDynamicMapServiceLayer>().Where(l => l.ID == mainDynamicLayer.ID).FirstOrDefault(); if (mainDynamicLayer != null && magnifierDynamicLayer != null) magnifierDynamicLayer.Visible = mainDynamicLayer.Visible; } }
Solved! Go to Solution.