private void AddSymbol(Symbology.Symbol symbol) { int columnCount = SymbolGrid.ColumnDefinitions.Count; var sd = new UI.Controls.SymbolDisplay() { Symbol = symbol }; var f = new Border() { HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center, VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Center, BorderBrush = new SolidColorBrush(Colors.Black), BorderThickness = new Thickness(1), Padding = new Thickness(0) }; f.Child = sd; int count = SymbolGrid.Children.Count; var row = count / columnCount; var column = count % columnCount; if (column == 0) { SymbolGrid.RowDefinitions.Add(new RowDefinition()); } Grid.SetRow(f, row); Grid.SetColumn(f, column); SymbolGrid.Children.Add(f); }
internal void SetSymbol(Symbology.Symbol symbol) { if (symbol != null) { // force the geometry type since GeometryType.Unknown doesn't work well with advanced symbology. var geometryType = GeometryType.Unknown; var gdbFeatureTable = Layer == null ? null : Layer.FeatureTable as GeodatabaseFeatureTable; if (gdbFeatureTable != null && gdbFeatureTable.ServiceInfo != null) geometryType = gdbFeatureTable.ServiceInfo.GeometryType; GeometryType = geometryType; } Symbol = symbol; OnPropertyChanged("GeometryType"); OnPropertyChanged("Symbol"); }
public LayerContentViewModel(ILayerContent layerContent, WeakReference <GeoView> view, Symbology.Symbol symbol = null, bool generateLegend = true) { _context = SynchronizationContext.Current ?? new SynchronizationContext(); LayerContent = layerContent; _view = view; Symbol = symbol; _generateLegend = generateLegend; if (LayerContent is INotifyPropertyChanged) { (LayerContent as INotifyPropertyChanged).PropertyChanged += LayerContentViewModel_PropertyChanged; } if (LayerContent.SublayerContents is INotifyCollectionChanged) { var incc = LayerContent.SublayerContents as INotifyCollectionChanged; var listener = new Internal.WeakEventListener <INotifyCollectionChanged, object, NotifyCollectionChangedEventArgs>(incc); listener.OnEventAction = (instance, source, eventArgs) => { LayerContentViewModel_CollectionChanged(source, eventArgs); }; listener.OnDetachAction = (instance, weakEventListener) => instance.CollectionChanged -= weakEventListener.OnEvent; incc.CollectionChanged += listener.OnEvent; } if (layerContent is Esri.ArcGISRuntime.ILoadable) { var l = layerContent as Esri.ArcGISRuntime.ILoadable; UpdateLoadingStatus(); } if (LayerContent is Layer) { Layer layer = LayerContent as Layer; GeoView gview; if (layer.LoadStatus != LoadStatus.NotLoaded && _view.TryGetTarget(out gview)) { try { var viewState = gview.GetLayerViewState(layer); UpdateLayerViewState(viewState); } catch (ArgumentException) { } } else { UpdateLayerViewState(null); } } }
internal async void SetSwatch(Symbology.Symbol symbol) { if (symbol != null) { // force the geometry type since GeometryType.Unknown doesn't work well with advanced symbology. Geometry.GeometryType geometryType = Geometry.GeometryType.Unknown; if (Layer != null && Layer.FeatureTable != null && Layer.FeatureTable.ServiceInfo != null) { geometryType = Layer.FeatureTable.ServiceInfo.GeometryType; } try { Swatch = await symbol.CreateSwatchAsync(32, 32, 96, Colors.Transparent, geometryType); OnPropertyChanged("Swatch"); } catch { } } }
public DesignLegendInfo(string name, Symbology.Symbol symbol) { Name = name; Symbol = symbol; }
public LayerContentViewModel(ILayerContent layerContent, WeakReference <GeoView> view, Symbology.Symbol symbol = null, bool generateLegend = true) { _context = SynchronizationContext.Current ?? new SynchronizationContext(); LayerContent = layerContent; _view = view; Symbol = symbol; _generateLegend = generateLegend; if (LayerContent is INotifyPropertyChanged) { (LayerContent as INotifyPropertyChanged).PropertyChanged += LayerContentViewModel_PropertyChanged; } if (LayerContent.SublayerContents is INotifyCollectionChanged) { var incc = LayerContent.SublayerContents as INotifyCollectionChanged; var listener = new Internal.WeakEventListener <INotifyCollectionChanged, object, NotifyCollectionChangedEventArgs>(incc); listener.OnEventAction = (instance, source, eventArgs) => { LayerContentViewModel_CollectionChanged(source, eventArgs); }; listener.OnDetachAction = (instance, weakEventListener) => instance.CollectionChanged -= weakEventListener.OnEvent; incc.CollectionChanged += listener.OnEvent; } if (layerContent is Esri.ArcGISRuntime.ILoadable) { var l = layerContent as Esri.ArcGISRuntime.ILoadable; ReloadCommand = _reloadCommand = new DelegateCommand( (s) => { l.RetryLoadAsync(); UpdateLoadingStatus(); }, (s) => { return(l.LoadStatus == Esri.ArcGISRuntime.LoadStatus.FailedToLoad); }); UpdateLoadingStatus(); } else { ReloadCommand = _reloadCommand = new DelegateCommand((s) => { }, (s) => { return(false); }); } if (LayerContent is Layer) { Layer layer = LayerContent as Layer; GeoView gview; if (layer.LoadStatus != LoadStatus.NotLoaded && _view.TryGetTarget(out gview)) { try { var viewState = gview.GetLayerViewState(layer); UpdateLayerViewState(viewState); } catch (ArgumentException) { } } else { UpdateLayerViewState(null); } } ZoomToCommand = _zoomToCommand = new DelegateCommand( (s) => { GeoView gview; bool hasView = _view.TryGetTarget(out gview); if (hasView) { var vp = GetExtent(); if (vp != null) { gview.SetViewpointAsync(vp); } } }, (s) => { GeoView gview; return(_view.TryGetTarget(out gview) && GetExtent() != null); }); }