如何将当前单词插入位置移动到 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 支持这两个命令。
但是请注意,当输入插入符 在 一个单词内时,此命令会将其移动到该单词的开头,而不是前一个单词的开头。
我正在使用 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 支持这两个命令。
但是请注意,当输入插入符 在 一个单词内时,此命令会将其移动到该单词的开头,而不是前一个单词的开头。