2012-04-19 53 views
1

我有一個網格包含幾個控件,最重要的是三個圖像控件。 我需要重複這個網格。通過將XAML保存在MemoryStream中進行序列化似乎沒有什麼幫助,因爲很顯然,當我在運行時將代碼的源代碼放在代碼背後時,這種更改不會反映在XAML設計器代碼中。 [技術上講,它是,但如何序列化圖像控件的源代碼在運行時設置?

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

,我得到一些奇怪的例外] 所以,我怎麼能我的序列化Image控件? 更一般地說,如何克隆我的網格控件以反映窗口加載後發生的對UI的任何更改?

回答

0

如果我正確理解你的問題,我想你只需要在運行時創建一個網格克隆。如果是的話就來看看這些線程 How can you clone a WPF object?

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

+0

這就提出了一個'SerializationException'。 'Grid'沒有標記爲可序列化。 – mbyamukama 2012-11-11 16:05:39

相關問題