WPF:使用 DrawingContext 的贝塞尔曲线

WPF: Bezier curve using DrawingContext

我想使用 DrawingContext class 绘制贝塞尔曲线,如下所示:

var pathFigure = new PathFigure();
pathFigure.StartPoint = new Point(Width - 15, line.Position + line.Height);

pathFigure.Segments.Add(new BezierSegment(new Point(Width - 7.5, line.Position + line.Height - 20),new Point(Width, line.Position + line.Height + 20), new Point(Width + 7.5, line.Position + line.Height), false));
pathFigure.IsClosed = false;

var path = new PathGeometry();
path.Figures.Add(pathFigure);

drawingContext.DrawGeometry(Brushes.Black, _blackPen, path);

我的_blackPen初始化如下:

 _blackPen = new Pen(Brushes.Black, 1);

但我得到了这个结果:

但我想要的是this link中所示的东西。

那我错过了什么?

编辑:

当我设置 pathFigure.IsFilled = false; 路径消失时:

drawingContext.DrawGeometry(null, _blackPen, path);

也一样

不填充几何图形。

要么使用null画笔

drawingContext.DrawGeometry(null, _blackPen, path);

或设置

pathFigure.IsFilled = false;

您还需要将BezierSegment的IsStroked 属性设置为true:

pathFigure.Segments.Add(
    new BezierSegment(
        new Point(Width - 7.5, line.Position + line.Height - 20),
        new Point(Width, line.Position + line.Height + 20),
        new Point(Width + 7.5, line.Position + line.Height),
        true)); // here