我有一些代码需要多个点并创建多个 LineSegments 来构建路径。
System.Windows.Shapes.Path pathSegment = new System.Windows.Shapes.Path();
PathFigure pathFig = new PathFigure();
PathGeometry pathGeo = new PathGeometry();
pathFig.StartPoint = new Point(pointData[0].X, pointData[0].Y);
for (int loop = 1; loop < pointData.Count; loop++)
{
LineSegment ls = new LineSegment();
ls.Point = new Point(pointData[loop].X, pointData[loop].Y);
pathFig.Segments.Add(ls);
}
pathGeo.Figures.Add(pathFig);
pathSegment.Data = pathGeo;
pathSegment.Stroke = brush;
pathSegment.StrokeThickness = 22;
这将创建我的线,宽度为 22px(大约)。现在,如果您查看实际的数据,您只能看到 LineSegement 元素,它本质上为您提供这样的输出,其中真实的线是黑色的,实际显示的线是灰色的(请原谅狡猾的 mspaint 草图):
现在我想对 Geometry 执行 StrokeContains 以查看指定的 Point 是否在上面的整个 pathSegment 内(灰色区域)。它实际上做的是检查 LineSegments(黑线)。
有没有更好的方法来建立路径?还是有办法将pathSegment(包括StrokeWidth)转换为新路径?