Это показывает полный жизненный цикл (от управления к XAML обратно управления). Как вы можете видеть,
string s = XamlWriter.Save(value);
интересная часть, которую вы могли бы заботиться о.
/// <summary>
/// Clones a given UIElement. Please note that any events, animations, etc
/// on the source item may not carry over to the cloned object.
/// </summary>
/// <param name="value">UIElement to clone.</param>
/// <returns>A shallow clone of the source element.</returns>
public static UIElement CloneUIElement(UIElement value)
{
if (value == null)
{
return null;
}
string s = XamlWriter.Save(value);
StringReader stringReader = new StringReader(s);
XmlReader xmlReader = XmlTextReader.Create(stringReader, new XmlReaderSettings());
return (UIElement)XamlReader.Load(xmlReader);
}
Это работало безупречно. И тоже очень быстро. Благодаря! – JRobbers
Это работает только для WPF; а не Silverlight. :( – Jason