2009-03-02 85 views
8

如何獲取RichTextBox的RTF文本?我想要這樣做,但該屬性不存在。如何從RichTextBox獲取RTF

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

回答

14

要獲得由用戶創建的實際XAML 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()); 

編輯:我沒有在我面前,以測試代碼,但TextRange類型的實例具有Save(流式傳輸)方法,它接受DataFormats參數,其可以是DataFormats.Rtf

+1

DataFormats包含一個Rtf成員。也許這種方法會起作用。 – 2009-03-02 10:18:30

+0

現在,我該如何設置RichTextBox的RTF文本? – rpf 2009-03-02 10:37:55

4

有2個RichTextBox的類,一個從所述的WinForms框架和一個從WPF框架:

System.Windows.Controls.RichTextBox wpfBox; 
System.Windows.Forms.RichTextBox winformsBox; 

只有WinForms RichTextBox具有Rtf屬性,另一個具有包含FlowDocument的Document屬性。