public void Draw(GraphicsEngine.Abstraction.ICanvas canvas, GraphicsEngine.CanvasRectangle rectangle, ISymbol symbol, bool cls) { if (symbol == null || canvas == null) { return; } Display display = new gView.Framework.Carto.Display(_map); display.dpi = GraphicsEngine.Current.Engine.ScreenDpi; //96f; // canvas.DpiX; IEnvelope env = display.Limit = new Envelope(0, rectangle.Top + rectangle.Height, rectangle.Left + rectangle.Width, 0); display.iWidth = (int)env.maxx; display.iHeight = (int)env.maxy; display.ZoomTo(env.minx, env.miny, env.maxx, env.maxy); IGeometry geometry = GeometryFromSymbol(symbol, new Envelope(rectangle.Left, rectangle.Height + rectangle.Top, rectangle.Width + rectangle.Left, rectangle.Top)); if (geometry == null) { return; } if (PlugInManager.PlugInID(symbol).Equals(KnownObjects.Symbology_PolygonMask)) { return; } display.Canvas = canvas; if (cls) { using (var brush = GraphicsEngine.Current.Engine.CreateSolidBrush(GraphicsEngine.ArgbColor.White)) { canvas.FillRectangle(brush, rectangle); } } ISymbol sym = symbol.Clone(new CloneOptions(display, false)) as ISymbol; if (sym != null) { if (sym is ITextSymbol) { ((ITextSymbol)sym).Text = "Text"; } sym.Draw(display, geometry); sym.Release(); } else { symbol.Draw(display, geometry); } }
static public GraphicsEngine.CanvasRectangle ToLegendItemSymbolRect(this GraphicsEngine.CanvasRectangle rect) { rect.Left = rect.Top = 0; rect.Width = LegendItemSymbolWidth; rect.Height = LegendItemSymbolHeight; return(rect); }
public void Draw(GraphicsEngine.Abstraction.ICanvas canvas, GraphicsEngine.CanvasRectangle rectangle, ISymbol symbol) { Draw(canvas, rectangle, symbol, true); }