/// <summary>Draw Path to canvas according path</summary> public void DrawPath(IPath path) { var draw = (_fillColor.Color.A > 0) || (_strokeColor.Color.A > 0); if (draw) { var clipped = PushRenderStates(); var p = (RenderPath)path; var geometry = p.FinalizeGeometry(); if (_fillColor.Color.A > 0) { geometry.FillRule = _fillRule; _drawingContext.DrawGeometry(_fillColor, null, geometry); } if (_strokeColor.Color.A > 0) { foreach (var figure in geometry.Figures) { foreach (var segment in figure.Segments) { segment.IsStroked = true; } } _drawingContext.DrawGeometry(null, _stroke.Clone(), geometry); } PopRenderStates(clipped); } }
protected override void OnRender(System.Windows.Media.DrawingContext drawingContext) { drawingContext.DrawGeometry(null, new Pen(Stroke, StrokeThickness), GetArcGeometry()); }