public override object Clone() { TrueTypeMarkerSymbol marker = Font != null && _brush != null ? new TrueTypeMarkerSymbol(Current.Engine.CreateFont(Font.Name, Font.Size, Font.Style), _brush.Color) : new TrueTypeMarkerSymbol(); marker.Angle = Angle; marker.HorizontalOffset = HorizontalOffset; marker.VerticalOffset = VerticalOffset; marker._char = _char; marker.LegendLabel = _legendLabel; marker.MaxSymbolSize = this.MaxSymbolSize; marker.MinSymbolSize = this.MinSymbolSize; CloneEngineOffsets(marker._engineOffset); return(marker); }
public object Clone(CloneOptions options) { var display = options?.Display; if (display == null) { return(Clone()); } float fac = 1; if (options.ApplyRefScale) { fac = ReferenceScaleHelper.RefscaleFactor( (float)(display.refScale / display.mapScale), this.SymbolSize, this.MinSymbolSize, this.MaxSymbolSize); fac = options.RefScaleFactor(fac); } fac *= options.DpiFactor; TrueTypeMarkerSymbol marker = new TrueTypeMarkerSymbol(Current.Engine.CreateFont(Font.Name, Math.Max(Font.Size * fac / display.Screen.LargeFontsFactor, 2f), _font.Style), _brush.Color); marker.Angle = Angle; marker.HorizontalOffset = HorizontalOffset * fac; marker.VerticalOffset = VerticalOffset * fac; marker._char = _char; marker.LegendLabel = _legendLabel; marker.MaxSymbolSize = this.MaxSymbolSize; marker.MinSymbolSize = this.MinSymbolSize; CloneEngineOffsets(marker._engineOffset); return(marker); }