如何存储路径几何

本文关键字:路径 存储 何存储 | 更新日期: 2023-09-27 18:35:38

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

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

如何存储路径几何

如果您已经将 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;

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

http://stringtopathgeometry.codeplex.com

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

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