我有几个 PathGeometry-s 显示地方之间的线。我想保存这些行。我无法将其序列化为 XML,也不知道如何存储这些行。有机会吗?
[编辑] 我在代码后面有 PathGeometry-s,而不是在 XAML 中。当我尝试使用 XMLWriter 类来存储这些时,它会给出异常“......类无法恢复,因为它们不被称为已知类型”
我有几个 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
有返回 PathGeometry 的方法 StringToPathConvertor.Convert(string path)。
为什么不能将其存储到 xml?怎么样<Line x1="0" y1="0" x2="100" y2="100"/>
?也许你可以举个小例子?