2009-03-02 20 views

Respuesta

14

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()); 

EDIT: No tengo código delante de mí para poner a prueba, sino una instancia del tipo TextRange tiene un (para transmitir) método Save que toma un parámetro DataFormats, que puede ser DataFormats.Rtf

+1

DataFormats contiene un miembro Rtf. Tal vez este método funcione. –

+0

Y ahora, ¿cómo puedo configurar el texto RTF de un RichTextBox? – rpf

+1

haga otra pregunta! ;) –

4

Hay 2 clases RichTextBox, uno del marco winforms y uno del marco WPF:

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

Solo las formas de pago RichTextBox tiene una propiedad Rtf, la otra tiene una propiedad de documento que contiene un FlowDocument.

+0

Sí, lo sé ... Desde la propiedad del documento, ¿cómo obtengo el texto RTF? – rpf

+0

Debería ver la conversión de un FlowDocument a una cadena RTF porque el contenido del control WPF es un FlowDocument y no un RTF. No tengo idea de cómo lograr esto sin embargo. – Wouter