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;
¿Fue útil?

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
scroll top