Feedback

FlowDocument kopieren

Sprache: C#

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. [b]Benötigte Namespaces[/b] 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);
    }
}
/// <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);
    }
}