Canvas から継承し、要素のドラッグ アンド ドロップ、サイズ変更、再配置の機能を提供する DragCanvas クラスがあります。キャンバスの内容を XAML ファイルとの間で保存/読み込みできるようにしたいと考えています。
エクスポート方法は次のようになります。
public void ExportPanel()
{
string savedCanvasString = XamlWriter.Save(editCanvas);
File.WriteAllText("Canvas.xaml", savedCanvasString);
}
非常に長い文字列を含む Canvas.xaml ファイルを実際に取得しているため、コードは正常に動作しているようです。
ただし、インポート メソッドは XamlReader.Load メソッドで例外をスローしています。具体的には、「タイプ 'System.Windows.ResourceDictionary' のディクショナリに値を追加すると、例外がスローされました。」. import メソッドのコードは、部分的にこの記事に基づいています。コードは次のとおりです。
public void ImportPanel()
{
string savedCanvasString = File.ReadAllText("Canvas.xaml");
StringReader stringReader = new StringReader(savedCanvasString);
XmlReader xmlReader = XmlReader.Create(stringReader);
DragCanvas savedCanvasChildren = (DragCanvas)XamlReader.Load(xmlReader); // The exception is being thrown here.
// Assignment code should be here.
}
私が間違っていることについて何か考えはありますか?前もって感謝します!