1
我有一个DragCanvas类,它从Canvas继承,并提供拖动,调整元素大小和重新定位的功能。我希望能够将画布的内容保存/载入XAML文件。将WPF画布的子项序列化/反序列化到/从XAML文件
出口的方法是这样的:
public void ExportPanel()
{
string savedCanvasString = XamlWriter.Save(editCanvas);
File.WriteAllText("Canvas.xaml", savedCanvasString);
}
的代码似乎是工作的罚款,因为我实际上得到一个Canvas.xaml有很长的字符串文件。
但是,导入方法在XamlReader.Load方法中引发异常。更特别的是:“将值添加到'System.Windows.ResourceDictionary'类型的字典中引发异常。”导入方法中的代码部分基于this article。这里的代码:
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.
}
你有什么想法我做错了什么?提前致谢!