Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在TextPointer对象中迭代多个段落_C#_.net_Wpf - Fatal编程技术网

C# 在TextPointer对象中迭代多个段落

C# 在TextPointer对象中迭代多个段落,c#,.net,wpf,C#,.net,Wpf,我在RichTextBox中处理流文档,更具体地说,在发生TextChange事件时处理TextRanges和TextPointer 我正在通过访问TextRange TextChange change; TextRange range = new TextRange(RichTextControl.Document.ContentStart, RichtextControl.Document.ContentEnd); TextRange changeRange = new TextRang

我在RichTextBox中处理流文档,更具体地说,在发生TextChange事件时处理TextRanges和TextPointer

我正在通过访问TextRange

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>

测试1
测试2
我现在可以使用
TextRange.Start
访问我的第一段。我通常可以通过访问内联来遍历这一段

然而,一旦我想进入第二段,我就有些不知所措了。我可以看到
TextPointer.GetNextContextPosition
,但这会导致我跳过TextPointer偏移位置,直到指针的上下文发生变化,我希望这不是实现这一点的方法


我不知道我是否只是在错误地捕捉更改后的文本,或者我是否只是缺少正确的界面来遍历该部分中包含的所有段落。如果是这样,解决方案应该很简单,但我就是看不到。

我似乎缺少合适的搜索词来找到解决方案。我在这里找到了一些有用的东西