c# - como - RichTextBox(WPF) no tiene la propiedad de cadena "Texto"
como usar richtextbox c# (11)
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?
"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
¿Qué tal si haces lo siguiente?
_richTextBox.SelectAll();
string myText = _richTextBox.Selection.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.
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;
}
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
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;
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;
}
}
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.
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;
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;
string GetString(RichTextBox rtb)
{
var textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
return textRange.Text;
}