2012-04-19 50 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

相关问题