如何从RichTextBox获取RTF

时间:2009-03-02 10:07:53

标签: c# .net wpf wpf-controls richtextbox

如何获取RichTextBox的RTF中的文字?我试图这样,但财产不存在。

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

2 个答案:

答案 0 :(得分:16)

获取用户在RichTextBox内创建的实际XAML:

   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(to stream)方法,它接受DataFormats参数,可以是DataFormats.Rtf

答案 1 :(得分:4)

有2个RichTextBox类,一个来自winforms框架,另一个来自WPF框架:

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

只有Winforms RichTextBox具有Rtf属性,另一个具有包含FlowDocument的Document属性。