This can be found on ArcGIS.com here and is also available in the Viewer's code gallery. This is a production quality, ready-to-use tool with full source code included.
Measure tool - that is coming soon and we will be posting that in the Code Gallery.
<esri:Map x:Name="Map" HorizontalAlignment="Stretch" IsLogoVisible="False" VerticalAlignment="Stretch" Grid.ColumnSpan="2" Grid.RowSpan="3" WrapAround="True" d:DataContext="{Binding Converter={StaticResource SampleGraphicsLayerConverter}, RelativeSource={RelativeSource Self}}"/> <Grid Grid.Column="{Binding ElementName=SidePanelContainer, Path=Visibility, Converter={StaticResource VisibilityToIntConverter}}" Grid.ColumnSpan="{Binding ElementName=SidePanelContainer, Path=Visibility, Converter={StaticResource VisibilityToIntConverter}, ConverterParameter='1,2'}" Grid.RowSpan="{Binding Visibility, ConverterParameter=1\,2, Converter={StaticResource VisibilityToIntConverter}, ElementName=FeatureDataGridContainer}"> <esri:MapProgressBar Map="{Binding ElementName=Map}" Width="250" Height="35" Style="{StaticResource MapProgressBarStyle}" Margin="10,5,0,2" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Bottom" /> <ContentControl x:Name="ScaleBarContainer" Margin="20,0,0,2" HorizontalAlignment="Left" HorizontalContentAlignment="Stretch" VerticalAlignment="Bottom" Foreground="WhiteSmoke"> <ContentControl.Effect> <DropShadowEffect BlurRadius="10" ShadowDepth="2" Opacity="1" Direction="300" /> </ContentControl.Effect> </ContentControl> <ContentControl x:Name="AttributionDisplayContainer" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,6,2"/> <!--Measuring Tools--> <Grid x:Name="MeasureBox" HorizontalAlignment="Right" VerticalAlignment="Top" Width="Auto" Height="Auto" Margin="10" Visibility="Visible"> <Border Style="{StaticResource GlassyBorder}" Padding="10,3,10,3" Opacity="1"> <!--<Border.Effect> <DropShadowEffect /> </Border.Effect>--> <StackPanel > <TextBlock Text="Measuring Tools" Foreground="White" FontSize="14" FontWeight="Bold" Margin="4" /> <TextBlock Text="Select Units:" Foreground="White" FontSize="12" Margin="2" /> <ComboBox x:Name="UnitCombo" Foreground="White" Margin="0,0,0,4" > <ComboBox.Items> <ComboBoxItem Content="Feet" IsSelected="True" Foreground="Black"/> <ComboBoxItem Content="Meters" Foreground="Black"/> <ComboBoxItem Content="Miles" Foreground="Black"/> </ComboBox.Items> </ComboBox> <ComboBox x:Name="AreaCombo" Foreground="White"> <ComboBox.Items> <ComboBoxItem Content="SquareFeet" IsSelected="True" Foreground="Black"/> <ComboBoxItem Content="SquareMeters" Foreground="Black"/> <ComboBoxItem Content="SquareMiles" Foreground="Black"/> </ComboBox.Items> </ComboBox> <Rectangle Margin="0,10,0,10" Fill="White" Height="2" HorizontalAlignment="Stretch" /> <Button Margin="0,0,0,2" Content="Length(Line)" > <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:MeasureAction AreaUnit="{Binding ElementName=AreaCombo, Path=SelectedItem.Content}" DisplayTotals="True" DistanceUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" MapUnits="Meters" MeasureMode="Polyline" FillSymbol="{StaticResource DefaultFillSymbol}" TargetName="Map"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> <Button Margin="0,2,0,2" Content="Radius(Circle)" > <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:MeasureAction AreaUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" DisplayTotals="True" DistanceUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" MapUnits="Meters" MeasureMode="Radius" FillSymbol="{StaticResource DefaultFillSymbol}" TargetName="Map"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> <Button Margin="0,2,0,2" Content="Area(Polygon)" > <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:MeasureAction AreaUnit="{Binding ElementName=AreaCombo, Path=SelectedItem.Content}" DisplayTotals="True" DistanceUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" MapUnits="Meters" MeasureMode="Polygon" FillSymbol="{StaticResource DefaultFillSymbol}" TargetName="Map"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> </StackPanel> </Border> </Grid> <!--Transparency Slider--> <Grid x:Name="TransparencyBox" HorizontalAlignment="Left" VerticalAlignment="Top" Width="Auto" Height="Auto" Margin="10" Visibility="Visible"> <Border Style="{StaticResource GlassyBorder}" Padding="10,3,10,3" Opacity="1"> <!--<Border.Effect> <DropShadowEffect /> </Border.Effect>--> <StackPanel Background="Transparent" Margin="0,0,0,0" HorizontalAlignment="Right" VerticalAlignment="Center"> <TextBlock Text="Layer Transparency" Foreground="White" FontSize="14" FontWeight="Bold" Margin="4" /> <Slider Height="23" Width="100" Name="slider1" Minimum="0" Maximum="1" Value="{Binding Path=SelectedLayer.Opacity, Mode=TwoWay, Source={StaticResource MapApplication}}" IsDirectionReversed="False" /> </StackPanel> </Border> </Grid> </Grid>
<Grid x:Name="MeasureBox" HorizontalAlignment="Right" VerticalAlignment="Top" Width="Auto" Height="Auto" Margin="10" Visibility="Collapsed"> <Border Style="{StaticResource GlassyBorder}" Padding="10,3,10,3" Opacity="1"> <StackPanel > <TextBlock Text="Measuring Tools" Foreground="White" FontSize="14" FontWeight="Bold" Margin="4" /> <TextBlock Text="Select Units:" Foreground="White" FontSize="12" Margin="2" /> <ComboBox x:Name="UnitCombo" Foreground="White" Margin="0,0,0,4" > <ComboBox.Items> <ComboBoxItem Content="Feet" IsSelected="True" Foreground="Black"/> <ComboBoxItem Content="Meters" Foreground="Black"/> <ComboBoxItem Content="Miles" Foreground="Black"/> </ComboBox.Items> </ComboBox> <ComboBox x:Name="AreaCombo" Foreground="White"> <ComboBox.Items> <ComboBoxItem Content="SquareFeet" IsSelected="True" Foreground="Black"/> <ComboBoxItem Content="SquareMeters" Foreground="Black"/> <ComboBoxItem Content="SquareMiles" Foreground="Black"/> </ComboBox.Items> </ComboBox> <Rectangle Margin="0,10,0,10" Fill="White" Height="2" HorizontalAlignment="Stretch" /> <Button Margin="0,0,0,2" Content="Length(Line)" > <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:MeasureAction AreaUnit="{Binding ElementName=AreaCombo, Path=SelectedItem.Content}" DisplayTotals="True" DistanceUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" MapUnits="Meters" MeasureMode="Polyline" FillSymbol="{StaticResource DefaultFillSymbol}" TargetName="Map"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> <Button Margin="0,2,0,2" Content="Radius(Circle)" > <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:MeasureAction AreaUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" DisplayTotals="True" DistanceUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" MapUnits="Meters" MeasureMode="Radius" FillSymbol="{StaticResource DefaultFillSymbol}" TargetName="Map"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> <Button Margin="0,2,0,2" Content="Area(Polygon)" > <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esri:MeasureAction AreaUnit="{Binding ElementName=AreaCombo, Path=SelectedItem.Content}" DisplayTotals="True" DistanceUnit="{Binding ElementName=UnitCombo, Path=SelectedItem.Content}" MapUnits="Meters" MeasureMode="Polygon" FillSymbol="{StaticResource DefaultFillSymbol}" TargetName="Map"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> </StackPanel> </Border> </Grid>
namespace MeasurementTool.AddIns { [Export(typeof(ICommand))] [DisplayName("Measuring Tools")] [ESRI.ArcGIS.Client.Extensibility.Description("Click to show or hide measuring tools.")] public class ToggleLayoutObject : ICommand { private FrameworkElement objectToToggle; public bool CanExecute(object parameter) { return true; } public event EventHandler CanExecuteChanged; public void Execute(object parameter) { if (objectToToggle == null) objectToToggle = MapApplication.Current.FindObjectInLayout("MeasureBox") as FrameworkElement; if (objectToToggle != null) objectToToggle.Visibility = objectToToggle.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible; } } }
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.