2009-04-23 20 views

Antwort

3

Dies Sie den gesamten Lebenszyklus zeigt (von der Steuerung zu XAML zurück zur Kontrolle). siehe Wie Sie,

string s = XamlWriter.Save(value); 

ist der interessante Teil Sie vielleicht interessieren.

/// <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); 
    } 
+0

Dieses einwandfrei funktioniert. Und war auch sehr schnell. Vielen Dank! – JRobbers

+1

Dies funktioniert nur für WPF; nicht Silverlight. :( – Jason

1

für Silverlight, lief ich über this blog post von Rob Relyea, die zu einem Silverlight xaml serializer von David Poll erstellt bezeichnet. Ein großes Lob an David Poll. (Downloads Page).

Nutzungs

UiXamlSerializer uxs = new UiXamlSerializer(); 
string text = uxs.Serialize(this.gridToSerialize); 
Verwandte Themen