2017-06-01 5 views
0

Disons que j'ai un RichTextBox (WPF) de 1000 mots (anglais). Certains mots seront gras, souligné, italique et de différentes tailles. En d'autres termes, de nombreux tags d'éléments sont intégrés dans FlowDocument.Comment trouver le TextRange du Nième mot dans un RichTextBox WPF?

Sans savoir ce que le mot est, comment puis-je sélectionner complètement le 13ème mot - et seulement le 13ème mot, même s'il a des balises d'éléments incorporés (disons que certains caractères sont en gras, soulignés, etc.)?

(Je n'ai trouvé aucune solution à cela avec Google et je trouve toujours que la RichTextBox est un contrôle plutôt difficile à utiliser).

Exemple: "Ceci est un test". Soit: 3 Résultat: TextRange du mot "test".

Toutes les suggestions ou idées seront les bienvenues.

TIA

Modifier. Il semble qu'une boucle sera nécessaire :(De toute façon, ce billet de blog a été très utile pour répondre à ce problème: Navigate Words in RichTextBox

Répondre

0

Vous ne savez pas très bien ce que vous voulez dire par balises d'élément embadré, je l'ai essayé et voici comment j'ai fait il:

string a = new TextRange(rtb.Document.ContentStart, 
rtb.Document.ContentEnd).Text; 
var b = a.Split(' '); 
string On13th = b[12]; 

Laissez-moi savoir si je ne suis pas clair ou vous avez l'intention de réaliser quelque chose d'autre

+0

Par embeded, je veux dire où le FlowDocument a le texte comme ... Cette i s un de te. La propriété "Text" supprime-t-elle tout sauf la chaîne de texte? w est-ce que ceci peut être converti en TextPointer? En fin de compte, j'ai besoin de la TextRange du 13ème mot, pas du mot lui-même. Merci. –

+0

Oui, la propriété Text supprime tout sauf la chaîne de texte. Pour la gamme de texte, pouvez-vous s'il vous plaît fournir des exemples d'entrée et de sortie? –