在我的System.Windows.Controls.RichTextBox中,我想查找給定單詞的TextRange。但是,在第一個找到的單詞之後它沒有給我正確的PositionAtOffset。第一個是正確的,然後對於下一個發現的單詞,位置不正確。我使用正確的方法嗎?如何在RichTextBox中找到TextRange(在兩個TextPointers之間)
遍歷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 2014-02-19 18:16:34