2

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

私が間違っていることについて何か考えはありますか?前もって感謝します!

4

1 に答える 1

1

今後の参考のために、関連する属性を自分でシリアル化することになりました。この記事の内容は、問題へのアプローチ方法を理解する上で非常に役立ちました。

于 2012-10-16T12:43:07.323 に答える