解构WPF的几何对象

时间:2017-05-31 14:56:58

标签: c# wpf

有没有办法从WPF获取Geometry实例的内部结构?

我需要转换一串用户输入的几何数据,例如

  

M10,100 C10,300 300,-200 300,100 Z

用于分隔几何命令(Move,Cubic Bezier Curve,Close)。我发现Geometry.Parse方法可以将字符串转换为实际的Geometry实例,但似乎没有任何方法可以以编程方式访问结构的详细信息。

当我偶然发现Geometry.Parse时,我正在手动解析数据,如果没有更好的方法,我可以继续,但如果已经有办法在框架中执行此操作,我显然会喜欢它。

我需要这个的原因是,我正在编写一个简单的几何数据编辑器。我有一切工作来生成路径数据字符串,但是希望允许用户将字符串导入我的应用程序。

enter image description here

1 个答案:

答案 0 :(得分:4)

var pathFigures = PathFigureCollection.Parse("M10,100 C10,300 300,-200 300,100 Z");

您可以枚举pathFigures中的PathFigure objects。每个都有一个StartPoint和一个Segments collectionSegments可以是ArcSegmentLineSegmentBezierSegment等所有Path Markup内容。