Gewusst wie: Extrahieren von Textinhalt aus einer RichTextBox

Aktualisiert: November 2007

In diesem Beispiel wird gezeigt, wie der Inhalt von RichTextBox als Nur-Text extrahiert wird.

Beispiel

Der folgende Extensible Application Markup Language (XAML)-Code beschreibt ein benanntes RichTextBox-Steuerelement mit einfachem Inhalt.

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

Der folgende Code implementiert eine Methode, die RichTextBox als Argument verwendet und eine Zeichenfolge zurückgibt, die den Nur-Text-Inhalt von RichTextBox darstellt.

Die Methode erstellt einen neuen TextRange aus dem Inhalt von RichTextBox, wobei ContentStart und ContentEnd verwendet werden, um den Bereich des zu extrahierenden Inhalts anzugeben. Die ContentStart-Eigenschaft und ContentEnd-Eigenschaft geben jeweils einen TextPointer zurück; auf sie kann über das zugrunde liegende FlowDocument zugegriffen werden, das den Inhalt von RichTextBox darstellt. TextRange stellt eine Texteigenschaft bereit, die die Nur-Text-Teile vom TextRange als eine Zeichenfolge zurückgibt.

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;
}

Siehe auch

Konzepte

Übersicht über RichTextBox

Übersicht über TextBox