Cómo: Extraer el contenido de texto de un control RichTextBoxHow to: Extract the Text Content from a RichTextBox

En este ejemplo se muestra cómo extraer el contenido de un RichTextBox como texto sin formato.This example shows how to extract the contents of a RichTextBox as plain text.

EjemploExample

En el Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) código siguiente se describe un RichTextBox control con nombre con contenido simple.The following Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) code describes a named RichTextBox control with simple content.

<RichTextBox Name="richTB">
  <FlowDocument>
    <Paragraph>
      <Run>Paragraph 1</Run>
    </Paragraph>
    <Paragraph>
      <Run>Paragraph 2</Run>
    </Paragraph>
    <Paragraph>
      <Run>Paragraph 3</Run>
    </Paragraph>
  </FlowDocument>
</RichTextBox>

EjemploExample

El código siguiente implementa un método que toma un objeto RichTextBox como argumento y devuelve una cadena que representa el contenido de texto sin formato de RichTextBox .The following code implements a method that takes a RichTextBox as an argument, and returns a string representing the plain text contents of the RichTextBox.

El método crea un nuevo a TextRange partir del contenido de RichTextBox , utilizando ContentStart y ContentEnd para indicar el intervalo del contenido que se va a extraer.The method creates a new TextRange from the contents of the RichTextBox, using the ContentStart and ContentEnd to indicate the range of the contents to extract. ContentStartContentEndcada una de las propiedades y devuelven un TextPointer , y son accesibles en el FlowDocument subyacente que representa el contenido de RichTextBox .ContentStart and ContentEnd properties each return a TextPointer, and are accessible on the underlying FlowDocument that represents the contents of the RichTextBox. TextRange proporciona una propiedad de texto, que devuelve las partes de texto sin formato de TextRange como una cadena.TextRange provides a Text property, which returns the plain text portions of the TextRange as a string.

string StringFromRichTextBox(RichTextBox rtb)
{
    TextRange textRange = new TextRange(
        // TextPointer to the start of content in the RichTextBox.
        rtb.Document.ContentStart,
        // TextPointer to the end of content in the RichTextBox.
        rtb.Document.ContentEnd
    );

    // The Text property on a TextRange object returns a string
    // representing the plain text content of the TextRange.
    return textRange.Text;
}
Private Function StringFromRichTextBox(ByVal rtb As RichTextBox) As String
        ' TextPointer to the start of content in the RichTextBox.
        ' TextPointer to the end of content in the RichTextBox.
    Dim textRange As New TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd)

    ' The Text property on a TextRange object returns a string
    ' representing the plain text content of the TextRange.
    Return textRange.Text
End Function

Consulte tambiénSee also