diff --git a/src/Perspex.Controls/Shapes/Shape.cs b/src/Perspex.Controls/Shapes/Shape.cs index 58dc24a738..fcd1fc20fe 100644 --- a/src/Perspex.Controls/Shapes/Shape.cs +++ b/src/Perspex.Controls/Shapes/Shape.cs @@ -90,13 +90,20 @@ namespace Perspex.Controls.Shapes set { SetValue(StrokeThicknessProperty, value); } } + public PenLineCap DashCap { get; set; } = PenLineCap.Flat; + + public PenLineCap StartLineCap { get; set; } = PenLineCap.Flat; + + public PenLineCap EndLineCap { get; set; } = PenLineCap.Flat; + public override void Render(DrawingContext context) { var geometry = RenderedGeometry; if (geometry != null) { - var pen = new Pen(Stroke, StrokeThickness, new DashStyle(StrokeDashArray)); + var pen = new Pen(Stroke, StrokeThickness, new DashStyle(StrokeDashArray), + DashCap, StartLineCap, EndLineCap); context.DrawGeometry(Fill, pen, geometry); } } diff --git a/src/Perspex.SceneGraph/Media/Pen.cs b/src/Perspex.SceneGraph/Media/Pen.cs index cc14ae29d6..489860a87a 100644 --- a/src/Perspex.SceneGraph/Media/Pen.cs +++ b/src/Perspex.SceneGraph/Media/Pen.cs @@ -31,12 +31,12 @@ namespace Perspex.Media { Brush = brush; Thickness = thickness; + DashCap = dashCap; StartLineCap = startLineCap; EndLineCap = endLineCap; LineJoin = lineJoin; MiterLimit = miterLimit; DashStyle = dashStyle; - DashCap = dashCap; } ///