2010-01-08 4 views
2

J'utilise .NET 3.5Comment obtenez-vous le texte sélectionné d'un FlowFocument WPF?

J'ai un FlowDocument dans un FlowDocumentScrollViewer. Je n'utilise pas RichTextBox. Le FlowDocument est livré avec un certain nombre de "freebies", y compris la sélection de texte et un menu contextuel pour copier/coller.

Comment puis-je savoir quel texte est actuellement sélectionné dans FlowDocument? J'imagine que je pourrais utiliser ApplicationCommands.Copy pour obtenir le texte dans le presse-papiers et ensuite le lire à partir de là, mais je ne veux pas changer le contenu du presse-papiers si je n'ai pas à le faire.

Il doit y avoir quelque chose qui me manque ...

Répondre

4

Quelle est la version du framework .NET utilisez-vous? Depuis la version 3.5, la propriété Selection est introduite pour le contrôle FlowDocumentScrollViewer. Vous pouvez l'utiliser pour travailler avec le texte sélectionné, SMTH comme ceci:

TextPointer potStart = flowDocumentScrollViewer.Selection.Start; 
TextPointer potEnd = flowDocumentScrollViewer.Selection.End; 
TextRange range = new TextRange(potStart,potEnd); 
Console.WriteLine(range.Text); 

espérons que cette aide, ce qui est

+0

.NET 3.5. Merci, cela ressemble exactement à ce dont j'ai besoin. Je l'essaierai plus tard et je noterai que c'est correct si cela fonctionne. – atoumey

+0

Bizarre. J'aurais pu jurer que c'était le premier endroit où j'avais l'air. Mais bien sûr, je suis retourné et vérifié deux fois et c'était juste là! XD – BrainSlugs83

Questions connexes