我有一个包含多个控件的Grid,最重要的是三个图像控件。 我需要复制这个Grid。通过将XAML保存在MemoryStream中进行序列化似乎没有帮助,因为很明显,当我在运行时在代码中设置图像控件的源时,此更改不会反映在XAML设计器代码中。 [技术上它是,但是作为
<Image.Source> System.Windows.Interop.InteropBitmap</Image.Source>
我得到了一些奇怪的例外] 那么,我如何序列化我的Image控件呢? 更一般地说,我如何克隆我的网格控件以反映窗口加载后发生的对UI的任何更改?
答案 0 :(得分: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