1

いくつかのコントロールを含む Grid があります。最も重要なのは 3 つのイメージ コントロールです。このグリッドの複製を作成する必要があります。XAML を MemoryStream に保存してシリアル化しても効果がないようです。明らかに、実行時にコード ビハインドでイメージ コントロールのソースを設定すると、この変更が XAML デザイナー コードに反映されないためです。【技術的にはそうですが、

<Image.Source> System.Windows.Interop.InteropBitmap</Image.Source>

そして、私はいくつかの奇妙な例外を受け取ります] では、どうすれば Image コントロールをシリアル化できますか? より一般的には、グリッド コントロールをクローンして、ウィンドウが読み込まれた後に発生した UI への変更を反映するにはどうすればよいですか?

4

1 に答える 1

0

あなたの質問を正しく理解していれば、実行時にグリッドのクローンを作成するだけでよいと思います。もしそうなら、これらのスレッドを見てください 。WPF オブジェクトのクローンを作成するにはどうすればよいですか?

http://social.msdn.microsoft.com/Forums/en-HK/wpf/thread/e1a63ed2-a432-4c46-8f3b-4f172702cd7c

この関数を使用してオブジェクトを複製します

public static T DeepClone<T>(T from)
    {
        using (MemoryStream s = new MemoryStream())
        {
            BinaryFormatter f = new BinaryFormatter();
            f.Serialize(s, from);
            s.Position = 0;
            object clone = f.Deserialize(s);

            return (T)clone;
        }
    }

上記の機能はArcturusによるものでした

于 2012-11-10T09:06:36.973 に答える