${WP_core_PredefineLineStyle_Title}
${WP_core_PredefineLineStyle_Description}
private void SetDefaultStyle( ) { HoverVertexStyle = new PredefinedMarkerStyle() { Size = 10 , Symbol = PredefinedMarkerStyle.MarkerSymbol.Square , Color = new SolidColorBrush(Colors.Green) }; SnapStyle = new PredefinedMarkerStyle() { Size = 12 , Symbol = PredefinedMarkerStyle.MarkerSymbol.Circle , Color = new SolidColorBrush(Colors.LightGray) }; HoverCenterStyle = new PredefinedMarkerStyle() { Size = 20 , Symbol = PredefinedMarkerStyle.MarkerSymbol.Star , Color = new SolidColorBrush(Colors.Red) }; hoverLineStyle = new PredefinedLineStyle() { Stroke = new SolidColorBrush(Colors.Transparent) , StrokeThickness = 10 };//Colors.Transparent }
/// <summary>${ui_action_Edit_constructor_D}</summary> /// <param name="map">${ui_action_Edit_constructor_param_map}</param> /// <param name="layer">${ui_action_Edit_constructor_param_layer}</param> public Edit(Map map , FeaturesLayer layer) { if (map != null && layer != null) { Name = "Edit"; Map = map; editLayer = layer; editLayer.MouseLeftButtonDown += editLayer_MouseLeftButtonDown; editLayer.MouseLeftButtonUp += editLayer_MouseLeftButtonUp; if (map.Theme == null) { SetDefaultStyle(); } else { HoverVertexStyle = map.Theme.HoverVertexStyle; SnapStyle = map.Theme.SnapStyle; HoverCenterStyle = map.Theme.HoverCenterStyle; hoverLineStyle = new PredefinedLineStyle() { Stroke = new SolidColorBrush(Colors.Transparent) , StrokeThickness = 10 };//Colors.Transparent } } }
private void Init(Point2D firstPoint) { if (_isInited) { return; } Deactivate(); _line = new Feature(); GeoLine line = new GeoLine(); line.Parts = new System.Collections.ObjectModel.ObservableCollection<Point2DCollection>(); line.Parts.Add(_points); PredefinedLineStyle style = new PredefinedLineStyle(); style.Stroke = new SolidColorBrush(Colors.Red); style.StrokeThickness = 2; style.Symbol = PredefinedLineStyle.LineSymbol.Solid; _line.Geometry = line; _line.Style = style; _fLayer.AddFeature(_line); TextBlock first = new TextBlock(); _distanceList.Add(first); first.FontWeight = FontWeights.ExtraBlack; first.Foreground = new SolidColorBrush(Colors.Black); first.Text = "起点"; _eLayer.AddChild(first, firstPoint); _points.Add(firstPoint); _distances.Add(0); _isInited = true; }
//public FeatureElement(Feature f, IRenderer renderer, bool _ignoreMouseEvent) //{ // this.ClipBox = Rectangle2D.Empty; // this.pathIsInvalid = true; // if (f == null) // { // throw new ArgumentNullException("f"); // } // this.feature = new WeakReference(f); // if (renderer != null && (f.GetValue(Clusterer.ClusterProperty) == null)) // { // this.GeoStyle = renderer.GetStyle(f) ?? generateDefaultSyle(f); // }//renderer的优先级高于Feature自我的 // else // { // this.GeoStyle = f.Style ?? generateDefaultSyle(f); // } // f.SetBoundedStyle(this.GeoStyle); // if (this.GeoStyle != null) // { // base.Template = this.GeoStyle.ControlTemplate; // } // this.ignoreMouseEvents = _ignoreMouseEvent; // this.Geometry = f.Geometry; //} //internal static FeatureElement DrawShape(Feature feature, IRenderer renderer) //{ // SuperMap.WindowsPhone.Core.Geometry geometry = feature.Geometry; // FeatureElement element = new FeatureElement(feature, renderer); // if (geometry is GeoPoint && element.GeoStyle is MarkerStyle) // { // MarkerStyle style = (MarkerStyle)(element.GeoStyle); // element.RenderTransform = new TranslateTransform { X = -style.OffsetX, Y = -style.OffsetY }; // } // else if (geometry is GeoLine && element.GeoStyle is LineStyle) // { // element.SetPath(); // } // else if (geometry is GeoRegion && element.GeoStyle is FillStyle) // { // element.SetPath(); // } // else // { // throw new ArgumentException(ExceptionStrings.InvalidSupportGeometry); // } // return element; //} private static Style generateDefaultSyle(Feature f) { if (f.Geometry is GeoPoint) { Style pmstyle = null; if (f.Layer.Map.Theme == null) { pmstyle = new PredefinedMarkerStyle() { Color = new SolidColorBrush(Colors.Red), Size = 10 }; } else { pmstyle = new PredefinedMarkerStyle() { Color = f.Layer.Map.Theme.Color, Size = f.Layer.Map.Theme.Size }; } return pmstyle; } else if (f.Geometry is GeoLine) { Style plstyle = null; if (f.Layer.Map.Theme == null) { plstyle = new PredefinedLineStyle() { Stroke = new SolidColorBrush(Color.FromArgb(99, 255, 0, 0)), StrokeThickness = 2 }; } else { plstyle = new PredefinedLineStyle() { Stroke = f.Layer.Map.Theme.Stroke, StrokeThickness = f.Layer.Map.Theme.StrokeThickness }; } return plstyle; } else { Style pfstyle = null; if (f.Layer.Map.Theme == null) { pfstyle = new FillStyle() { Fill = new SolidColorBrush(Color.FromArgb(99, 255, 0, 0)) }; } else { pfstyle = new FillStyle() { Fill = f.Layer.Map.Theme.Fill, Stroke = f.Layer.Map.Theme.Stroke }; } return pfstyle; } }