How to get RTF from RichTextBox

rpf picture rpf · Mar 2, 2009 · Viewed 12.4k times · Source

How do I get the text in RTF of a RichTextBox? I'm trying to get like this, but the property does not exist.

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

Answer

Mitch Wheat picture Mitch Wheat · Mar 2, 2009

To get the actual XAML created by the user inside of the 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: I don't have code in front of me to test, but an instance of the TextRange type has a Save (to stream) method that takes a DataFormats parameter, which can be DataFormats.Rtf