Как получить RTF от RichTextBox - PullRequest
       24

Как получить RTF от RichTextBox

10 голосов
/ 02 марта 2009

Как мне получить текст в формате RTF для RichTextBox? Я пытаюсь получить, как это, но свойство не существует.

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

Ответы [ 2 ]

16 голосов
/ 02 марта 2009

Чтобы получить фактический 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());

EDIT: передо мной нет кода для тестирования, но экземпляр типа TextRange имеет метод Save (to stream), который принимает параметр DataFormats, который может быть DataFormats.Rtf

4 голосов
/ 02 марта 2009

Существует 2 класса RichTextBox, один из фреймворка winforms и один из фреймворка WPF:

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

Только Winforms RichTextBox имеет свойство Rtf, у другого есть свойство Document, которое содержит FlowDocument.

...