2

我有一个 DragCanvas 类,它继承自 Canvas 并提供拖放、调整大小和重新定位元素的功能。我希望能够将画布的内容保存/加载到 XAML 文件中。

导出方法如下所示:

public void ExportPanel()
    {
        string savedCanvasString = XamlWriter.Save(editCanvas);
        File.WriteAllText("Canvas.xaml", savedCanvasString);
    }

代码似乎工作正常,因为我实际上得到了一个带有很长字符串的 Canvas.xaml 文件。

但是,导入方法在 XamlReader.Load 方法中引发异常。更具体地说:“向'System.Windows.ResourceDictionary'类型的字典添加值引发异常。”。导入方法中的代码部分基于本文。这是代码:

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.
    }

你对我做错了什么有任何想法吗?提前致谢!

4

1 回答 1

1

为了将来参考,我最终自己序列化了相关属性。本文的内容在理解如何解决问题的过程中非常有用。

于 2012-10-16T12:43:07.323 回答