WPF: кривая Безье с использованием DrawingContext - PullRequest
0 голосов
/ 14 января 2020

Я хочу нарисовать кривую Безье, используя класс 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 инициализируется следующим образом:

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

Но я получаю этот результат:

enter image description here

Но я хочу что-то вроде того, что показано в этой ссылке .

Так чего мне не хватает?

РЕДАКТИРОВАТЬ:

Когда я устанавливаю pathFigure.IsFilled = false; путь исчезает:

enter image description here

То же самое относится к drawingContext.DrawGeometry(null, _blackPen, path);

1 Ответ

2 голосов
/ 14 января 2020

Не заполняйте геометрию.

Либо используйте null Bru sh

drawingContext.DrawGeometry(null, _blackPen, path);

, либо установите

pathFigure.IsFilled = false;

Вы также необходимо установить для свойства IsStroked BezierSegment значение 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
...