循环访问文本指针对象中的多个段落
本文关键字:段落 对象 访问 文本 指针 循环 | 更新日期: 2023-09-27 18:34:25
我正在使用RichTextBox中的FlowDocuments,更具体地说,当TextChange事件发生时,使用TextRanges和TextPointers。
我正在通过以下方式访问文本范围
TextChange change;
TextRange range = new TextRange(RichTextControl.Document.ContentStart, RichtextControl.Document.ContentEnd);
TextRange changeRange = new TextRange(range.Start.GetPositionAtOffset(change.Offset), range.Start.GetPositionAtOffset(change.Offset+change.AddedLength));
我必须处理的文本范围跨越多个段落。我从所选内容中提取的 TextRange 经过简化后如下所示:
<Section>
<Paragraph>
<Span>
<Run>Test1</Run>
</Span>
</Paragraph>
<Paragraph>
<Span>
<Run>Test2</Run>
</Span>
</Paragraph>
</Section>
我现在可以使用TextRange.Start
访问第一段。我可以通过访问内联正常遍历此段落。
但是,一旦我想访问第二段,我就有些别无选择。我可以看到TextPointer.GetNextContextPosition
,但这会导致我跳过文本指针偏移位置,直到指针所在的上下文发生变化,我希望这不能成为这样做的方法。
我不知道我是否只是在实际捕获更改的文本时做错了,或者我只是缺少正确的界面来遍历该部分中包含的所有段落。如果是这样,解决方案应该很容易,但我只是看不到它。
我似乎缺乏找到解决方案的正确搜索词。我在这里找到了可能可用的东西 http://www.bryanewert.net/journal/2010/5/26/how-to-explore-the-contents-of-a-flowdocument.html