2009-03-02 83 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属性。