gpt4 book ai didi

将一个 FlowDocument 复制到第二个 FlowDocument

转载 作者:行者123 更新时间:2023-12-04 12:38:29 26 4
gpt4 key购买 nike

我如何将一个 FlowDocument 的内容复制到下面的另一个 FlowDocument 是我尝试过的

foreach (var blk in fd1.Blocks)
{
fd2.Blocks.Add(blk);
}

fd1 是 Fl​​owDocument1,fd2 是 Fl​​owDocument2。

但我收到以下错误。

集合被修改;枚举操作可能无法执行。

谢谢

阿文德

最佳答案

因为每个块都由 FlowDocument “拥有”,所以它不能只是添加到另一个。您必须对其进行序列化,然后对其进行反序列化,这会破坏与原始 FlowDocument 的联系,从而允许您将其添加到另一个 FlowDocument。

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

这是复制自:

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

关于将一个 FlowDocument 复制到第二个 FlowDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com