Copying one FlowDocument to Second FlowDocument

醉酒当歌 提交于 2019-12-03 14:46:52
Arvind

Because each Block is 'owned' by a FlowDocument, it cannot just be added to another. You must serialize it and then deserialize it, which breaks the bond with the original FlowDocument, which allows you to add it to another.

/// <summary>
/// Adds one flowdocument to another.
/// </summary>
/// <param name="from">From.</param>
/// <param name="to">To.</param>
public static void AddDocument(FlowDocument from, FlowDocument to)
{
    TextRange range = new TextRange(from.ContentStart, from.ContentEnd);
    MemoryStream stream = new MemoryStream();
    System.Windows.Markup.XamlWriter.Save(range, stream);
    range.Save(stream, DataFormats.XamlPackage);
    TextRange range2 = new TextRange(to.ContentEnd, to.ContentEnd);
    range2.Load(stream, DataFormats.XamlPackage);
}

This was copied from:

http://social.msdn.microsoft.com/Forums/en/wpf/thread/f4b26d9b-5b74-446b-85e7-e49e519380ad

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!