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

how to move current word caret position into previous word in richtextbox wpf?

我正在使用 WPF C# 编写应用程序 Windows application.i 想在那个 richtextbox 中逐字导航 content.how 我做到了。 我已经尝试将当前单词移动到下一个单词 navigation.its 工作。我正在使用下面的代码。

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);

那么现在如何获取前一个词和所有其他词的文本指针?

注意: 我已经使用内容开头得到了前面的单词,caretposition.but 它给出了类似的字符串。我希望 textpointer 值移动每个前面的单词。

问候 阿俊

您可以为此使用 MoveRightByWord and MoveLeftByWord 命令:

EditingCommands.MoveLeftByWord.Execute(null, richTextBox);

根据文档,RichTextBox 支持这两个命令。

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