私のSystem.Windows.Controls.RichTextBoxに、与えられた単語のTextRangeを探したいと思います。しかし、最初に見つかった単語の後ろに正しいPositionAtOffsetを与えているわけではありません。最初のものは正しいものであり、次に見つかった単語については、位置が正しくありません。私は正しい方法を使用していますか?RichTextBox内のTextRangeを見つける方法(2つのTextPointerの間)
ループ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);
TextPointer.GetPositionAtOffsetのオフセットは「記号」ではないため、このコードは一般的には機能しません。文字列に空白が含まれているか、単語がUIElementsに及ぶ可能性のある英語以外の言語である可能性が最も高いです。 – Mark