Partilhar via


Como: Extrair o conteúdo de texto de um RichTextBox

Este exemplo mostra como extrair o conteúdo de um RichTextBox como texto sem formatação.

Descrever um controle RichTextBox

O código XAML (Extensible Application Markup Language) a seguir descreve um controle de RichTextBox nomeado com conteúdo simples.

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

Exemplo de código com RichTextBox como argumento

O código a seguir implementa um método que usa um RichTextBox como um argumento e retorna uma cadeia de caracteres que representa o conteúdo de texto sem formatação do RichTextBox.

O método cria um novo TextRange a partir do conteúdo do RichTextBox, usando o ContentStart e ContentEnd para indicar o intervalo do conteúdo a extrair. As propriedades ContentStart e ContentEnd, cada uma retorna um TextPointer, e são acessíveis no documento FlowDocument subjacente que representa o conteúdo do RichTextBox. TextRange fornece uma propriedade Text, que retorna as partes de texto sem formatação do TextRange como uma cadeia de caracteres.

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

Ver também