0

我有几个 PathGeometry-s 显示地方之间的线。我想保存这些行。我无法将其序列化为 XML,也不知道如何存储这些行。有机会吗?

[编辑] 我在代码后面有 PathGeometry-s,而不是在 XAML 中。当我尝试使用 XMLWriter 类来存储这些时,它会给出异常“......类无法恢复,因为它们不被称为已知类型”

4

3 回答 3

3

如果您已经将 PathGeometry 实例化为对象,您可以尝试使用 XAMLWriter 对其进行序列化MSDN

例如

        var pathgeo = new PathGeometry();
        pathgeo.AddGeometry(new PathGeometry(new PathFigureCollection() { new PathFigure(new Point(10, 50), new List<PathSegment>() { new LineSegment(new Point(200, 70), true) }, false) }));

        // Save
        var s = XamlWriter.Save(pathgeo);

        byte[] byteArray = Encoding.ASCII.GetBytes(s);
        var stream = new MemoryStream(byteArray);

        // Load
        var ob = XamlReader.Load(stream);

        // test beeing a System.Windows.Shapes.Path
        test.Data = ob as PathGeometry;
于 2012-05-30T07:15:33.043 回答
1

您可以PathGeomety在集合中序列化 -s 字符串表示,当您想要恢复它时,使用这个很棒的解决方案来恢复

http://stringtopathgeometry.codeplex.com

有返回 PathGeometry 的方法 StringToPathConvertor.Convert(string path)。

于 2012-05-30T07:37:06.400 回答
0

为什么不能将其存储到 xml?怎么样<Line x1="0" y1="0" x2="100" y2="100"/>?也许你可以举个小例子?

于 2012-05-30T07:06:42.897 回答