private static void OnSymbolPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { SymbolPresenter obj = (SymbolPresenter)d; if (e.OldValue != null) { (e.OldValue as ESRI.ArcGIS.Client.Symbols.Symbol).PropertyChanged -= obj.symbol_PropertyChanged; } ESRI.ArcGIS.Client.Symbols.Symbol newValue = (ESRI.ArcGIS.Client.Symbols.Symbol)e.NewValue; obj.Template = newValue.ControlTemplate; newValue.PropertyChanged += obj.symbol_PropertyChanged; }
/// <summary> /// This method sets the layer to the icon layer and defines the icon symbol /// </summary> private void IconButton_Click(object sender, RoutedEventArgs e) { layer = "IconFeatureLayer"; MyDrawObject.DrawMode = DrawMode.Point; drawing = this.MapGrid.Resources["IconSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol; MyDrawObject.IsEnabled = (MyDrawObject.DrawMode != DrawMode.None); }
/// <summary> /// This method sets the layer to the EMS layer and defines its draw symbol. /// </summary> private void EMSButton_Click(object sender, RoutedEventArgs e) { layer = "EMSFeatureLayer"; MyDrawObject.DrawMode = DrawMode.Freehand; drawing = this.MapGrid.Resources["EMSLineSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol; MyDrawObject.IsEnabled = (MyDrawObject.DrawMode != DrawMode.None); }
private void bindUIToLayer() { GraphicsLayer graphicsLayer = Layer as GraphicsLayer; if (graphicsLayer == null) { return; } #region Renderer Takes Precedence bindingToLayer = true; if (GraphicSymbolsTakePrecedence != null) { GraphicSymbolsTakePrecedence.IsChecked = !graphicsLayer.RendererTakesPrecedence; } bindingToLayer = false; #endregion GeometryType = ESRI.ArcGIS.Mapping.Core.LayerExtensions.GetGeometryType(graphicsLayer); ClassBreaksRenderer classBreaksRenderer = graphicsLayer.Renderer as ClassBreaksRenderer; if (classBreaksRenderer != null) { if (RendererOptionsContainerControl != null) { ClassBreaksRendererOptionsConfigControl optionsConfigControl = new ClassBreaksRendererOptionsConfigControl() { ClassBreaksRenderer = classBreaksRenderer, SymbolConfigProvider = SymbolConfigProvider, GeometryType = GeometryType, }; Binding b = new Binding("Foreground") { Source = this }; optionsConfigControl.SetBinding(ClassBreaksRendererOptionsConfigControl.ForegroundProperty, b); optionsConfigControl.RendererColorSchemeChanged += new EventHandler <GradientBrushChangedEventArgs>(optionsConfigControl_RendererColorSchemeChanged); optionsConfigControl.RendererClassBreaksChanged += new EventHandler <RendererClassBreaksCountChangedEventArgs>(optionsConfigControl_RendererClassBreaksChanged); RendererOptionsContainerControl.Content = optionsConfigControl; } if (RendererOptionsContainerBorder != null) { RendererOptionsContainerBorder.Visibility = Visibility.Visible; } if (CurrentSymbolLabel != null) { CurrentSymbolLabel.Visibility = Visibility.Visible; } createClassBreaksRendererSymbolsConfigControl(classBreaksRenderer); } else { UniqueValueRenderer uniqueValueRenderer = graphicsLayer.Renderer as UniqueValueRenderer; if (uniqueValueRenderer != null) { if (RendererOptionsContainerControl != null) { UniqueValueRendererOptionsConfigControl optionsConfigControl = new UniqueValueRendererOptionsConfigControl() { UniqueValueRenderer = uniqueValueRenderer, SymbolConfigProvider = SymbolConfigProvider, GeometryType = GeometryType, }; Binding b = new Binding("Foreground") { Source = this }; optionsConfigControl.SetBinding(UniqueValueRendererOptionsConfigControl.ForegroundProperty, b); optionsConfigControl.RendererColorSchemeChanged += new EventHandler <GradientBrushChangedEventArgs>(optionsConfigControl_RendererColorSchemeChanged); optionsConfigControl.NewUniqueValueAdded += new EventHandler <NewUniqueValueInfoEventArgs>(optionsConfigControl_NewUniqueValueCreated); optionsConfigControl.DeleteUniqueValueClicked += new EventHandler(optionsConfigControl_DeleteUniqueValueClicked); RendererOptionsContainerControl.Content = optionsConfigControl; } if (RendererSymbolSetContainerControl != null) { UniqueValueRendererSymbolsConfigControl symbolsConfigControl = new UniqueValueRendererSymbolsConfigControl() { UniqueValueRenderer = uniqueValueRenderer, SymbolConfigProvider = SymbolConfigProvider, GeometryType = GeometryType, }; Binding b = new Binding("Foreground") { Source = this }; symbolsConfigControl.SetBinding(UniqueValueRendererSymbolsConfigControl.ForegroundProperty, b); symbolsConfigControl.UniqueValueRendererModified += new EventHandler <SelectedUniqueValueModificationEventArgs>(symbolsConfigControl_UniqueValueRendererModified); symbolsConfigControl.CurrentUniqueValueChanged += new EventHandler <CurrentUniqueValueChangedEventArgs>(symbolsConfigControl_CurrentUniqueValueChanged); symbolsConfigControl.DefaultClassBreakBeingConfigured += new EventHandler <DefaultClassBreakBeingConfiguredEventArgs>(symbolsConfigControl_DefaultClassBreakBeingConfigured); RendererSymbolSetContainerControl.Content = symbolsConfigControl; } if (RendererOptionsContainerBorder != null) { RendererOptionsContainerBorder.Visibility = Visibility.Visible; } if (CurrentSymbolLabel != null) { CurrentSymbolLabel.Visibility = Visibility.Visible; } } else { // No renderer / simple renderer ... clear out the control if (RendererOptionsContainerControl != null) { RendererOptionsContainerControl.Content = null; } if (RendererSymbolSetContainerControl != null) { ESRI.ArcGIS.Client.Symbols.Symbol defaultSymbol = graphicsLayer.GetDefaultSymbol(); DefaultSymbolConfigControl defaultSymbolConfig = new DefaultSymbolConfigControl() { Symbol = defaultSymbol, SymbolConfigProvider = SymbolConfigProvider, GeometryType = GeometryType, }; Binding b = new Binding("Foreground") { Source = this }; defaultSymbolConfig.SetBinding(DefaultSymbolConfigControl.ForegroundProperty, b); defaultSymbolConfig.DefaultSymbolModified += new EventHandler <SymbolSelectedEventArgs>(defaultSymbolConfig_DefaultSymbolModified); RendererSymbolSetContainerControl.Content = defaultSymbolConfig; if (SymbolConfigControl != null) { SymbolConfigControl.Symbol = defaultSymbol; } } if (CurrentSymbolLabel != null) { CurrentSymbolLabel.Visibility = Visibility.Collapsed; } if (RendererOptionsContainerBorder != null) { RendererOptionsContainerBorder.Visibility = Visibility.Collapsed; } } } }