/// <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());
 }