private Symbol DetermineSymbol(int orderStatusId) { switch (orderStatusId) { case 20: case 30: return Container.Resources["InProgressOrderSymbol"] as Symbol; case 50: return Container.Resources["CompletedOrderSymbol"] as Symbol; default: return Container.Resources["AssignedOrderSymbol"] as Symbol; } } private void AddGraphic(MapOrder order) { Graphic graphic = new Graphic() { Geometry = mercator.FromGeographic(new MapPoint((double)order.Longitude, (double)order.Latitude)) Symbol = DetermineSymbol(order.OrderStatusId) }; // add to graphics layer }
<Grid x:Name="Container"> <Grid.Resources> <ControlTemplate x:Key="WOTemplate" x:Name="WOTemplate"> <Grid Height="48" HorizontalAlignment="Center" VerticalAlignment="Center" Width="48" Background="#02FFFFFF"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="SelectedStates"> <VisualState x:Name="Unselected"> <Storyboard > <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetName="Fuzz" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0" /> </Storyboard> </VisualState> <VisualState x:Name="Selected"> <Storyboard RepeatBehavior="Forever"> <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetName="Fuzz" Storyboard.TargetProperty="Opacity" To="1.0" Duration="0:0:0" /> <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetName="Fuzz" Storyboard.TargetProperty="Opacity" To="0.0" Duration="0:0:1" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Path x:Name="Fuzz" Fill="#FFAAC800" Stretch="Fill" Stroke="#FFAAC800" StrokeThickness="3" Height="48" Width="48" HorizontalAlignment="Center" Margin="0,0,0,0" VerticalAlignment="Center" Opacity="0"> <Path.Data> <GeometryGroup> <LineGeometry StartPoint="1, 24" EndPoint="-24, -1"/> <LineGeometry StartPoint="-24, 1" EndPoint="1, -24"/> <LineGeometry StartPoint="-1, -24" EndPoint="24, 1"/> <LineGeometry StartPoint="24, -1" EndPoint="-1, 24"/> </GeometryGroup> </Path.Data> </Path> <Image x:Name="image" Source="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Source}" RenderTransformOrigin="0.5,0.5"/> </Grid> </ControlTemplate> <esri:PictureMarkerSymbol ControlTemplate="{StaticResource WOTemplate}" x:Name="AssignedOrderSymbol" x:Key="AssignedOrderSymbol" Source="Assets/MapStatus_Assigned.png" OffsetX="24" OffsetY="24"/> <esri:PictureMarkerSymbol ControlTemplate="{StaticResource WOTemplate}" x:Name="CompletedOrderSymbol" x:Key="CompletedOrderSymbol" Source="Assets/MapStatus_Completed.png" OffsetX="24" OffsetY="24" /> <esri:PictureMarkerSymbol ControlTemplate="{StaticResource WOTemplate}" x:Name="InProgressOrderSymbol" x:Key="InProgressOrderSymbol" Source="Assets/MapStatus_InProgress.png" OffsetX="24" OffsetY="24"/> </Grid.Resources> ...
Solved! Go to Solution.
{Binding Symbol.Source}
{Binding Symbol.FuzzColor}
<Image Source="/WPFApplicationName;component/Assets/ImageName.png" />
{Binding Symbol.Source}
{Binding Symbol.FuzzColor}