我做过的最简单的方法是使用XamlWriter将WPF对象保存为字符串。Save方法将序列化对象及其逻辑树中的所有子对象。现在,您可以创建一个新对象,并使用XamlReader加载它。
例如:将对象写入xaml(假设该对象是Grid控件):
string gridXaml = XamlWriter.Save(myGrid);
将其加载到新对象中:
StringReader stringReader = new StringReader(gridXaml);
XmlReader xmlReader = XmlReader.Create(stringReader);
Grid newGrid = (Grid)XamlReader.Load(xmlReader);