Feedback

C# - FlowDocument kopieren

Veröffentlicht von am 24.08.2014
(0 Bewertungen)
Diese Erweiterungsmethode kopiert den Inhalt eines Flussdokuments. Dabei wird lediglich der Inhalt kopiert, d.h. Datenbindungen usw. gehen verloren. Bilder bleiben aber beispielsweise erhalten.
Das neue Dokument kann in einer anderen RichTextBox angezeigt werden, als das Original.

Benötigte Namespaces
System.IO
System.Windows.Documents
System.Windows.Markup
/// <summary>
/// Kopiert den Inhalt eines Flussdokuments in ein neues Flussdokument.
/// </summary>
/// <param name="source">Das zu kopierende Flussdokument.</param>
/// <returns>Ein neues Flussdokument mit dem Inhalt von <paramref name="source"/>.</returns>
/// <remarks>Die Kopie des Flussdokuments kann in einer anderen RichTextBox angezeigt werden, als das Quelldokument.<para/>
/// Die Methode kopiert nur den Inhalt. Datenbindungen gehen beispielsweise verloren.</remarks>
public static FlowDocument CloneContent(this FlowDocument source)
{
    using (var memStream = new MemoryStream())
    {
        XamlWriter.Save(source, memStream);
        memStream.Seek(0, SeekOrigin.Begin);
        return (FlowDocument)XamlReader.Load(memStream);
    }
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!