/// <summary> /// /// </summary> /// <param name="dc"></param> /// <param name="brush"></param> /// <param name="pen"></param> /// <param name="isStroked"></param> /// <param name="isFilled"></param> /// <param name="rect"></param> private static void DrawRectangleInternal( DrawingContext dc, Brush brush, Pen pen, bool isStroked, bool isFilled, ref Rect2 rect) { if (!isStroked && !isFilled) return; var r = new Rect(rect.X, rect.Y, rect.Width, rect.Height); if (isFilled) { dc.FillRectangle(brush, r); } if (isStroked) { dc.DrawRectangle(pen, r); } }
/// <summary> /// Renders the control. /// </summary> /// <param name="context">The drawing context.</param> public override void Render(DrawingContext context) { var background = Background; var borderBrush = BorderBrush; var borderThickness = BorderThickness; var cornerRadius = CornerRadius; var rect = new Rect(Bounds.Size).Deflate(BorderThickness); if (background != null) { context.FillRectangle(background, rect, cornerRadius); } if (borderBrush != null && borderThickness > 0) { context.DrawRectangle(new Pen(borderBrush, borderThickness), rect, cornerRadius); } }
private void DrawRoundRect(DrawingContext ctx) { ctx.FillRectangle(new SolidColorBrush(Colors.White), new Rect(new Size(ClientSize.Width, ClientSize.Height))); var rc = new Rect(0, 0, 60, 60); var transform = GetTransform(); using (ctx.PushPostTransform(transform)) { ctx.FillRectangle(new SolidColorBrush(Colors.Aqua), rc, 20); ctx.DrawRectangle(new Pen(new SolidColorBrush(Colors.Magenta), 10), rc, 20); } }