Вопрос

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

RichTextBox rtb = new RichTextBox();
string s = rtb.Rtf;
Это было полезно?

Решение

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

Другие советы

Существует два класса RichTextBox: один из платформы Winforms и один из платформы WPF:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top