public void VisitShapeDraw(ShapeDraw shapeDraw) { if (shapeDraw.BackColor != Color.Empty) { ShapePaintHelper.FillRectangle(Graphics, ResourceCache.DefaultCache.GetSolidBrush(shapeDraw.BackColor), shapeDraw.VirtualBounds); } }
private static void PaintFigure(Graphics g, RectangleF innbounds, ShapeFigure shape, int borderwidth) { using (GraphicsPath gp = new GraphicsPath()) { switch (shape.Type) { case ShapeType.Rectangle: gp.AddRectangle(ShapePaintHelper.GetNormalizedRectangle(Rectangle.Round(innbounds))); break; case ShapeType.Ellipse: gp.AddEllipse(ShapePaintHelper.GetNormalizedRectangle(Rectangle.Round(innbounds))); break; case ShapeType.UpArrow: gp.AddPolygon(Rect2PointFArray(Rectangle.Round(innbounds), ArrowDirection.Up)); break; case ShapeType.DownArrow: gp.AddPolygon(Rect2PointFArray(Rectangle.Round(innbounds), ArrowDirection.Down)); break; case ShapeType.RightArrow: gp.AddPolygon(Rect2PointFArray(Rectangle.Round(innbounds), ArrowDirection.Right)); break; case ShapeType.LeftArrow: gp.AddPolygon(Rect2PointFArray(Rectangle.Round(innbounds), ArrowDirection.Left)); break; default: return; } if (shape.Filled) { g.FillPath(ResourceCache.DefaultCache.GetSolidBrush(shape.FillColor), gp); } using (Pen pen = ResourceCache.DefaultCache.GetPen(shape.BorderColor, borderwidth, PenAlignment.Inset, shape.LineDashStyle)) g.DrawPath(pen, gp); } }