場所の間に線を表示しているPathGeometryがいくつかあります。これらの行を保存したいと思います。XMLにシリアル化できず、これらの行を格納する方法がわかりません。それをする機会はありますか?
[編集]XAMLではなく、コードビハインドにPathGeometry-sがあります。XMLWriterクラスを使用してこれらを保存しようとすると、「...既知の型として知られていないため、クラスを復元できませんでした」という例外が発生します。
場所の間に線を表示しているPathGeometryがいくつかあります。これらの行を保存したいと思います。XMLにシリアル化できず、これらの行を格納する方法がわかりません。それをする機会はありますか?
[編集]XAMLではなく、コードビハインドにPathGeometry-sがあります。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;
コレクション内の-s文字列表現をシリアル化できPathGeomety
ます。復元する場合は、この優れたソリューションを使用して復元します。
http://stringtopathgeometry.codeplex.com
PathGeometryを返すメソッドStringToPathConvertor.Convert(string path)があります。
なぜそれをxmlに保存できなかったのですか?どう<Line x1="0" y1="0" x2="100" y2="100"/>
ですか?多分あなたは少し例をあげることができますか?