WPF PathGeometry Fill
У меня проблема с WPF и PathGeometry. У меня есть следующий объект Path, который представляет собой комбинацию линий и дуг.
<Path Data="M100,180L220,180 M220,180L220,152 M220,152L217,150
M217,150L182,150 M180,147L180,132 M182,130L217,130 M217,130L220,127
M220,127L220,80 M220,80L100,80 M100,80L100,180 M182,150L180,147
M180,132L182,130">
Вот простой фрагмент кода, который должен нарисовать всю форму.
private void DrawIt()
{
Canvas canv = new Canvas();
this.Content = canv;
canv.Margin = new Thickness(0, 0, 0, 0);
canv.Background = new SolidColorBrush(Colors.White);
Path testPath = GetPath("blue");
testPath.Data = Geometry.Parse("M100,180L220,180 M220,180L220,152 M220,152L217,150 M217,150L182,150 M180,147L180,132 M182,130L217,130 M217,130L220,127 M220,127L220,80 M220,80L100,80 M100,80L100,180 M182,150L180,147 M180,132L182,130 ");
var area = testPath.Data.GetArea();
canv.Children.Add(testPath);
this.Content = canv;
}
private Path GetPath(string aColor)
{
Path imagePath = new Path();
SolidColorBrush colorBrush = (SolidColorBrush)new BrushConverter().ConvertFromString(aColor);
imagePath.Stroke = colorBrush;
imagePath.StrokeThickness = 2;
imagePath.Fill = colorBrush;
return imagePath;
}
Код выше приводит к следующему изображению:
Моя проблема в том, что я пытаюсь получить область этого изображения, но Path.Data.GetArea() только когда-либо возвращает 0.0.
Любая помощь будет оценена.
1 ответ
Вы описываете несколько цифр, все из них только прямые линии, потому что вы продолжаете выдавать M
Ове команды Если ваши данные пути были такими:
M100,180L220,180 220,152 217,150 182,150 180,147 180,132 182,130 217,130 220,127
220,80 100,80 Z
Вместо этого он описывает одну фигуру, которая должна рисовать ту же форму, которую вы показали, но также должна быть заполняемой.