2009-03-02 7 views
8

Comment obtenir le texte au format RTF d'un RichTextBox? J'essaie d'obtenir comme ça, mais la propriété n'existe pas.Comment obtenir le RTF de RichTextBox

RichTextBox rtb = new RichTextBox(); 
string s = rtb.Rtf; 

Répondre

14

Pour obtenir le XAML réel créé par l'utilisateur à l'intérieur de la RichTextBox:

TextRange tr = new TextRange(myRichTextBox.Document.ContentStart, 
           myRichTextBox.Document.ContentEnd); 
    MemoryStream ms = new MemoryStream(); 
    tr.Save(ms, DataFormats.Xaml); 
    string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray()); 

EDIT: Je n'ai pas le code devant moi pour tester, mais une instance du type TextRange a une méthode Save (pour écouter) qui prend un paramètre DataFormats, qui peut être DataFormats.Rtf

+1

DataFormats contient un membre Rtf. Peut-être que cette méthode fonctionnera. –

+0

Et maintenant, comment puis-je définir le texte RTF d'un RichTextBox? – rpf

+1

poser une autre question! ;) –

4

Il y a 2 classes de RichTextBox, l'un du cadre winforms et l'autre du cadre WPF:Seul le WinTools RichTextBox a une propriété Rtf, l'autre possède une propriété Document qui contient un FlowDocument.

+0

Oui je sais ... De la propriété Document, comment obtenir le texte RTF? – rpf

+0

Vous devez rechercher la conversion d'un FlowDocument en chaîne RTF car le contenu du contrôle WPF est un FlowDocument et non RTF. Je n'ai aucune idée de comment accomplir cela. – Wouter

Questions connexes