2009-03-02 12 views
8

Wie bekomme ich den Text in RTF von RichTextBox? Ich versuche, so zu bekommen, aber die Eigenschaft existiert nicht.Wie bekomme ich RTF von RichTextBox

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

Antwort

14

die tatsächliche XAML durch den Benutzer innerhalb des RichTextBox erstellt Um:

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: Ich habe mich nicht Code vor zu testen, aber eine Instanz des TextRange Typ hat eine Save (zu Streamen) Methode, die einen DataFormats Parameter annimmt, die DataFormats.Rtf

+1

DataFormats enthält ein RTF-Member. Vielleicht wird diese Methode funktionieren. –

+0

Und nun, wie kann ich den RTF-Text einer RichTextBox einstellen? – rpf

+1

eine andere Frage stellen! ;) –

4

Es gibt 2 RichTextBox Klassen, eine von dem winforms Rahmen und ein von dem WPF Rahmen sein kann:

Nur die Winforms RichTextBox hat eine Rtf-Eigenschaft, die andere hat eine Document-Eigenschaft, die ein FlowDocument enthält.

+0

Ja, ich weiß ... Wie bekomme ich den RTF-Text von der Document-Eigenschaft? – rpf

+0

Sie sollten ein FlowDocument in eine RTF-Zeichenfolge konvertieren, da der Inhalt des WPF-Steuerelements ein FlowDocument und nicht RTF ist. Ich habe keine Ahnung, wie ich das erreichen soll. – Wouter

Verwandte Themen