Cómo obtener RTF de RichTextBox
-
03-07-2019 - |
Pregunta
¿Cómo obtengo el texto en RTF de un RichTextBox
? Estoy tratando de ponerme así, pero la propiedad no existe.
RichTextBox rtb = new RichTextBox();
string s = rtb.Rtf;
Solución
Para obtener el XAML real creado por el usuario dentro de 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());
EDITAR: no tengo código frente a mí para probar, pero una instancia del tipo TextRange
tiene un método Guardar
(para transmitir) que toma un Parámetro DataFormats
, que puede ser DataFormats.Rtf
Otros consejos
Hay 2 clases RichTextBox, una del marco winforms y otra del marco WPF:
System.Windows.Controls.RichTextBox wpfBox;
System.Windows.Forms.RichTextBox winformsBox;
Solo el WinText RichTextBox tiene una propiedad Rtf, el otro tiene una propiedad Document que contiene un FlowDocument.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow