将FlowDocument插入到另一个FlowDocument的光标位置

本文关键字:FlowDocument 光标 位置 插入 另一个 | 更新日期: 2023-09-27 17:51:09

我想在doc2的当前光标位置插入一个FlowDocument (doc1)到另一个FlowDocument (doc2)。

我知道我可以通过文档所在的RichTextBox的CaretPosition获得光标位置,并且我可以在技术上添加一个Block AFTER或BEFORE另一个Block,但我不能将其添加到指定的光标位置单独使用Blocks属性(和它的add方法)。

我可以添加内联元素,至少它的大部分子类,在指定的textpointer,这将是我想要的,但我不能添加一个块到另一个块的内联。迭代块是不可能的,以及基类"块"不包含任何内联存储属性。试图将Block转换为每个可能的特定Block类型似乎根本不是一个好主意。

那么,有没有一种简单而干净的方法可以将doc1的整个Content插入到doc2的Cursor位置呢?

将FlowDocument插入到另一个FlowDocument的光标位置

好了,我显然找到了解决方案。工作与FlowDocuments以及,但我需要RTF那里。

byte[] byteArray = Encoding.Default.GetBytes(rtfString);
MemoryStream stream = new MemoryStream(byteArray);
this.selectedRichTextBox.Selection.Load(stream, DataFormats.Rtf);
stream.Close();