获取WPF路径的长度

我使用PathGeometry绘制了一条线。使用PathGeometry Geometry长度的引用,我使用GetFlattenedPathGeometry方法得到路径的长度,该方法将路径转换为一系列直线,并加上线长。引用的代码是

 public static double GetLength(this Geometry geo) { PathGeometry path = geo.GetFlattenedPathGeometry(); double length = 0.0; foreach (PathFigure pf in path.Figures) { Point start = pf.StartPoint; foreach (PolyLineSegment seg in pf.Segments) { foreach (Point point in seg.Points) { length += Distance(start, point); start = point; } } } return length; } private static double Distance(Point p1, Point p2) { return Math.Sqrt(Math.Pow(p1.X - p2.X,2) + Math.Pow(p1.Y - p2.Y,2)); } 

有没有其他更好的方法来获得PathGeometry长度?

您可以轻松将System.Windows.Media.Geometry转换为具有ComputeLength函数的SharpDX.Direct2D1.Geometry :

计算几何的长度,就像每个段展开成一条线一样。