RichTextBox (WPF) no tiene la propiedad de cadena “Texto”

Estoy tratando de establecer / obtener el texto de mi RichTextBox, pero el texto no está entre la lista de sus propiedades cuando quiero obtener la prueba. Texto …

Estoy usando código detrás en C # (.net framework 3.5 SP1)

RichTextBox test = new RichTextBox(); 

no puede tener test.Text(?)

¿Sabes cómo puede ser posible?

para configurar el texto de RichTextBox:

 richTextBox1.Document.Blocks.Clear(); richTextBox1.Document.Blocks.Add(new Paragraph(new Run("Text"))); 

para obtener el texto de RichTextBox:

 string richText = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd).Text; 

Hubo una confusión entre RichTextBox en System.Windows.Forms y en System.Windows.Control

Estoy usando el que está en el Control ya que estoy usando WPF. Allí, no hay propiedad de Texto, y para obtener un texto, debería haber usado esta línea:

 string myText = new TextRange(transcriberArea.Document.ContentStart, transcriberArea.Document.ContentEnd).Text; 

Gracias

WPF RichTextBox tiene una propiedad de Document para configurar el contenido a la MSDN:

 // Create a FlowDocument to contain content for the RichTextBox. FlowDocument myFlowDoc = new FlowDocument(); // Add paragraphs to the FlowDocument. myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 1"))); myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 2"))); myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 3"))); RichTextBox myRichTextBox = new RichTextBox(); // Add initial content to the RichTextBox. myRichTextBox.Document = myFlowDoc; 

AppendText embargo, puedes usar el método AppendText si eso es lo único que buscas.

Espero que ayude.

 string GetString(RichTextBox rtb) { var textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd); return textRange.Text; } 

No hay propiedad Text en el control WPF RichTextBox. Aquí hay una forma de sacar todo el texto:

 TextRange range = new TextRange(myRTB.Document.ContentStart, myRTB.Document.ContentEnd); string allText = range.Text; 
 RichTextBox rtf = new RichTextBox(); System.IO.MemoryStream stream = new System.IO.MemoryStream(ASCIIEncoding.Default.GetBytes(yourText)); rtf.Selection.Load(stream, DataFormats.Rtf); 

O

 rtf.Selection.Text = yourText; 

Usando dos métodos de extensión, esto se vuelve muy fácil:

 public static class Ext { public static void SetText(this RichTextBox richTextBox, string text) { richTextBox.Document.Blocks.Clear(); richTextBox.Document.Blocks.Add(new Paragraph(new Run(text))); } public static string GetText(this RichTextBox richTextBox) { return new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd).Text; } } 

¿Qué tal si haces lo siguiente?

 _richTextBox.SelectAll(); string myText = _richTextBox.Selection.Text; 

“Extended WPF Toolkit” ahora proporciona un richtextbox con la propiedad Text.

Puede obtener o configurar el texto en diferentes formatos (XAML, RTF y texto plano).

Aquí está el enlace: Extended WPF Toolkit RichTextBox

En mi caso, tuve que convertir un texto RTF en texto sin formato: lo que hice (usando Xceed WPF Toolkit) como en la respuesta de GiangLP; y configurando mi código en un método de extensión:

 public static string RTFToPlainText(this string s) { // for information : default Xceed.Wpf.Toolkit.RichTextBox formatter is RtfFormatter Xceed.Wpf.Toolkit.RichTextBox rtBox = new Xceed.Wpf.Toolkit.RichTextBox(new System.Windows.Documents.FlowDocument()); rtBox.Text = s; rtBox.TextFormatter = new Xceed.Wpf.Toolkit.PlainTextFormatter(); return rtBox.Text; } 

De acuerdo con esto, tiene una propiedad Text

http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox_members.aspx

También puede probar la propiedad “Líneas” si desea que el texto se divida en líneas.