如何将当前单词插入符号位置移动到richtextbox wpf中的前一个单词?

如何将当前单词插入符号位置移动到richtextbox wpf中的前一个单词?,wpf,c#-4.0,richtextbox,Wpf,C# 4.0,Richtextbox,我正在使用WPF C Windows应用程序编写一个应用程序。我想在richtextbox内容中逐字导航。如何操作。 我已经试着将当前单词移动到下一个单词导航。这很有效。我正在使用下面的代码 TextPointer starting = txtAppendValue.Document.ContentStart; startval = txtAppendValue.CaretPosition; text = startval.GetTextInRun

我正在使用WPF C Windows应用程序编写一个应用程序。我想在richtextbox内容中逐字导航。如何操作。 我已经试着将当前单词移动到下一个单词导航。这很有效。我正在使用下面的代码

TextPointer starting = txtAppendValue.Document.ContentStart;
            startval = txtAppendValue.CaretPosition;
            text = startval.GetTextInRun(LogicalDirection.Backward);
            newWord = txtAppendValue.CaretPosition.GetNextInsertionPosition(LogicalDirection.Forward);
            if (newWord != null)
            {

                txtAppendValue.CaretPosition = newWord;
                txtptrCaret = txtAppendValue.CaretPosition;
                NextStringvalue = txtptrCaret.GetTextInRun(LogicalDirection.Forward);
                {
                    txtptrCaret = txtAppendValue.CaretPosition;
                    range1 = new TextRange(starting, txtptrCaret);
                    indexInText = range1.Text.Length;
                }}
下面这一行是新词文本指针,用于在内容末尾指定下一个词

newWord = txtAppendValue.CaretPosition.GetNextInsertionPosition(LogicalDirection.Forward);
那么现在我如何得到一个前一个单词和所有其他单词的文本指针呢

注意:我已经使用contentstart和caretposition获得了前面的单词。但是它给出了类似字符串的结果。我希望textpointer值移动前面的每个单词

问候 Arjun

您可以使用和命令来执行此操作:

EditingCommands.MoveLeftByWord.Execute(null, richTextBox);
根据文档,RichTextBox支持这两个命令


但是请注意,当输入插入符号位于一个单词内时,此命令会将其移动到该单词的开头,而不是上一个单词的开头。

@Joey.谢谢。我不知道,它实际上是如何帮助我的。你能举一些例子来获取richtextbox中的前一个单词吗?@arjunsanju:我想说的是,richtextbox已经知道如何通过实现上述命令来实现这一点。您可以告诉控件导航到上一个或下一个单词。我包含的代码正是这样做的。@Joey.k.但我想突出显示该单词。那么我如何才能获得该单词的索引和长度值。因此,您不想移动插入符号,而是想突出显示一个单词。我觉得这完全不同。如果选择足够,还有一个SelectLeftByWord命令。@Joey。谢谢。我用caretposition前后方向得到了答案。