获取几何长度

有谁知道在像素中获得WPF几何的长度的有效方法? 我知道WPF中的几何是基于矢量的,因此实际上没有像素长度。 但必须能够根据可见的绘制图像获得长度。 我的意思是如果我在1024×800像素图像中绘制一些几何图形,则必须能够获得这些几何图形的长度。

我在这里错了还是有任何可能有效的方法来获取这些信息?

先感谢您!

迈克尔

我想出了一个解决方案,但不知道这是否是最有效(最快)的方式。 请留下您的意见 – 谢谢大家!

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)); } 
 var geometry = new EllipseGeometry(new Point(50,50), 45, 20); var length = geometry.Bounds.Width; //or geometry.Bounds.Height 

注意: EllipseGeometry只是一个例子。 从Geometry派生的所有类都具有Bounds属性。