Как получить RTF из RichTextBox
-
03-07-2019 - |
Вопрос
Как получить текст в формате 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.
Не связан с StackOverflow