获取几何长度

Mic*_*ael 5 c# wpf geometry system.windows.media

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

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

先感谢您!

迈克尔

Mic*_*ael 4

我已经提出了一个解决方案,但不知道这是否是最有效(最快)的方法。请对此发表您的评论 - 谢谢大家!

    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));
    }
Run Code Online (Sandbox Code Playgroud)