/// <summary> /// Draws a rectangles with round corners. /// </summary> public void DrawRoundedRectangle(XPen pen, XBrush brush, double x, double y, double width, double height, double ellipseWidth, double ellipseHeight) { if (pen == null && brush == null) throw new ArgumentNullException("pen and brush", PSSR.NeedPenOrBrush); if (this.drawGraphics) { #if GDI if (this.targetContext == XGraphicTargetContext.GDI) { XGraphicsPath path = new XGraphicsPath(); path.AddRoundedRectangle(x, y, width, height, ellipseWidth, ellipseHeight); DrawPath(pen, brush, path); } #endif #if WPF if (this.targetContext == XGraphicTargetContext.WPF) { this.dc.DrawRoundedRectangle( brush != null ? brush.RealizeWpfBrush() : null, pen != null ? pen.RealizeWpfPen() : null, new Rect(x, y, width, height), ellipseWidth / 2, ellipseHeight / 2); } #endif } if (this.renderer != null) this.renderer.DrawRoundedRectangle(pen, brush, x, y, width, height, ellipseWidth, ellipseHeight); }
/// <summary> /// Draws a rectangles with round corners. /// </summary> public void DrawRoundedRectangle(XPen pen, XBrush brush, double x, double y, double width, double height, double ellipseWidth, double ellipseHeight) { if (pen == null && brush == null) throw new ArgumentNullException("pen and brush", PSSR.NeedPenOrBrush); if (this.drawGraphics) { XGraphicsPath path = new XGraphicsPath(); path.AddRoundedRectangle(x, y, width, height, ellipseWidth, ellipseHeight); DrawPath(pen, brush, path); //GraphicsPath gdiPath = path.RealizeGdiPath(); //if (brush != null) // this.gfx.FillPath(brush.RealizeGdiBrush(), gdiPath); //if (pen != null) // this.gfx.DrawPath(pen.RealizeGdiPen(), gdiPath); } if (this.renderer != null) this.renderer.DrawRoundedRectangle(pen, brush, x, y, width, height, ellipseWidth, ellipseHeight); }