Dans mon System.Windows.Controls.RichTextBox, je voudrais trouver un TextRange d'un mot donné. Cependant, il ne me donne pas le PositionAtOffset correct après le premier mot trouvé. Le premier est correct, puis pour les prochains mots trouvés, la position n'est pas correcte. Est-ce que j'utilise les bonnes méthodes?Comment trouver un TextRange dans RichTextBox (entre deux TextPointers)
boucle par 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);
Le décalage de TextPointer.GetPositionAtOffset est 'symboles' pas de caractères, donc ce code ne fonctionnera pas en général. Très probablement si le mot string contient des espaces ou est une langue non-anglaise où les mots peuvent s'étendre à UIElements. – Mark