WPF:使用DrawingContext的Bezier曲线

WPF:使用DrawingContext的Bezier曲线,wpf,drawing,bezier,drawingcontext,Wpf,Drawing,Bezier,Drawingcontext,我想使用DrawingContext类绘制贝塞尔曲线,如下所示: 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 Po

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

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 = new Pen(Brushes.Black, 1);
My_blackPen的初始化如下:

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 = new Pen(Brushes.Black, 1);
但我得到的结果是:

但我想要的是类似于中所示的东西

那么我错过了什么

编辑:

当我设置
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

不要填充几何体

使用
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

谢谢你的回答,当我不填充它时,路径就消失了。我在问题中添加了这一点。您意外地将
IsStroked
设置为false。请参阅编辑。谢谢您的回答,当我不填充路径时,路径将消失。我在问题中添加了这一点。您意外地将
IsStroked
设置为false。请参见编辑。