如何在 RichTextBox 中查找 TextRange(两个 TextPointer 之间)
在我的 System.Windows.Controls.RichTextBox 中,我想找到给定单词的 TextRange。 但是,在第一个找到的单词之后,它没有给我正确的 PositionAtOffset 。 第一个是正确的,然后对于下一个找到的单词,位置不正确。 我使用的方法正确吗?
循环遍历单词列表
Word= listOfWords[j].ToString();
startPos = new TextRange(transcriberArea.Document.ContentStart, transcriberArea.Document.ContentEnd).Text.IndexOf(Word.Trim());
leftPointer = textPointer.GetPositionAtOffset(startPos + 1, LogicalDirection.Forward);
rightPointer = textPointer.GetPositionAtOffset((startPos + 1 + Word.Length), LogicalDirection.Backward);
TextRange myRange= new TextRange(leftPointer, rightPointer);
In my System.Windows.Controls.RichTextBox, I would like to find a TextRange of a given word. However, it is not giving me the correct PositionAtOffset after the first found word. The first one is correct, and then for the next found words, the position is not correct. Am I using the correct methods?
Loop through listOfWords
Word= listOfWords[j].ToString();
startPos = new TextRange(transcriberArea.Document.ContentStart, transcriberArea.Document.ContentEnd).Text.IndexOf(Word.Trim());
leftPointer = textPointer.GetPositionAtOffset(startPos + 1, LogicalDirection.Forward);
rightPointer = textPointer.GetPositionAtOffset((startPos + 1 + Word.Length), LogicalDirection.Backward);
TextRange myRange= new TextRange(leftPointer, rightPointer);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此代码改编自 MSDN 上的示例从指定位置查找单词。
然后你可以像这样使用它:
This code adapted from a sample at MSDN will find words in from a specified position.
You can then use it like so:
我想,它也应该有效。
这就像从列表中“查找下一个”任何项目。
I think, it should work also.
It is like "find next" any item from the list.