Übersicht über das TextElement-InhaltsmodellTextElement Content Model Overview

In dieser Übersicht über das Inhalts Modell werden die unter TextElementstützten Inhalte für eine beschrieben.This content model overview describes the supported content for a TextElement. Die Paragraph -Klasse ist ein Typ TextElementvon.The Paragraph class is a type of TextElement. Ein Inhaltsmodell beschreibt, welche Objekte/Elemente in anderen enthalten sein können.A content model describes what objects/elements can be contained in others. Diese Übersicht fasst das Inhalts Modell zusammen, das für von TextElementabgeleitete Objekte verwendet wird.This overview summarizes the content model used for objects derived from TextElement. Weitere Informationen finden Sie unter Übersicht über Fluss Dokumente.For more information, see Flow Document Overview.

InhaltsmodelldiagrammContent Model Diagram

Im folgenden Diagramm ist das Inhalts Modell für Klassen zusammengefasst TextElement , die von abgeleitet sind, sowie TextElement die Art und Weise, wie andere nicht-Klassen in dieses Modell passen.The following diagram summarizes the content model for classes derived from TextElement as well as how other non- TextElement classes fit into this model.

![Diagra Einschluss Schema]für fortlaufenden Inhalt(./media/flow-content-schema.png "Flow_Content_Schema")Diagram: Flow content containment schema

Wie aus dem vorangehenden Diagramm ersichtlich ist, werden die untergeordneten Elemente, die für ein Element zulässig sind, nicht notwendigerweise bestimmt, ob Block eine Klasse von Inline der-Klasse oder einer-Klasse abgeleitet ist.As can be seen from the preceding diagram, the children allowed for an element are not necessarily determined by whether a class is derived from the Block class or an Inline class. Beispielsweise kann eine Span (eine Inlinevon abgeleitete Klasse) nur unter Inline geordnete Elemente aufweisen, aber Figure eine (auch Inlineeine von abgeleitete Klasse) kann Block nur untergeordnete Elemente aufweisen.For example, a Span (an Inline-derived class) can only have Inline child elements, but a Figure (also an Inline-derived class) can only have Block child elements. Aus diesem Grund ist ein Diagramm nützlich, um schnell zu bestimmen, welches Element in einem anderen eingeschlossen sein kann.Therefore, a diagram is useful for quickly determining what element can be contained in another. Als Beispiel verwenden wir das Diagramm, um zu bestimmen, wie der fortlaufende Inhalt RichTextBoxeines erstellt wird.As an example, let's use the diagram to determine how to construct the flow content of a RichTextBox.

  1. Muss einen enthalten, der wiederum ein Blockvon abgeleitetes Objekt enthalten muss. FlowDocument RichTextBoxA RichTextBox must contain a FlowDocument which in turn must contain a Block-derived object. Im Folgenden wird das entsprechende Segment aus dem vorherigen Diagramm dargestellt.The following is the corresponding segment from the preceding diagram.

    ![Diagra RichTextBox-Containment]-Regeln(./media/flow-ovw-schemawalkthrough1.png "Flow_Ovw_SchemaWalkThrough1")Diagram: RichTextBox containment rules

    Bis jetzt könnte das Markup wie folgt aussehen.Thus far, this is what the markup might look like.

    <RichTextBox>
      <FlowDocument>
        <!-- One or more Block-derived object… -->
      </FlowDocument>
    </RichTextBox>
    
  2. Entsprechend dem Diagramm Block stehen mehrere Elemente zur Auswahl Section Table Paragraph, Listz. a.,,, und BlockUIContainer (siehe von Block abgeleitete Klassen im vorangehenden Diagramm).According to the diagram, there are several Block elements to choose from including Paragraph, Section, Table, List, and BlockUIContainer (see Block-derived classes in the preceding diagram). Nehmen wir an, wir möchten Tableein.Let's say we want a Table. Gemäß dem vorangehenden Table Diagramm TableRowGroup enthält eine eine enthaltende TableRow Elemente, die Elemente TableCell enthalten, die ein Blockvon abgeleitetes Objekt enthalten.According to the preceding diagram, a Table contains a TableRowGroup containing TableRow elements, which contain TableCell elements which contain a Block-derived object. Im folgenden finden Sie das entsprechende Segment Table , das aus dem vorherigen Diagramm entnommen wurde.The following is the corresponding segment for Table taken from the preceding diagram.

    ![Diagra Über/geordnetes untergeordnetes Schema]für Tabelle(./media/flow-ovw-schemawalkthrough2.png "Flow_Ovw_SchemaWalkThrough2")Diagram: Parent/child schema for Table

    Im Folgenden wird das entsprechende Markup dargestellt.The following is the corresponding markup.

    <RichTextBox>
      <FlowDocument>
        <Table>
          <TableRowGroup>
            <TableRow>
              <TableCell>
                <!-- One or more Block-derived object… -->
              </TableCell>
            </TableRow>
          </TableRowGroup>
        </Table>
      </FlowDocument>
    </RichTextBox>
    
  3. Ein oder mehrere Block -Elemente sind TableCellunterhalb von erforderlich.Again, one or more Block elements are required underneath a TableCell. Um es einfach zu gestalten, fügen wir Text in die Zelle ein.To make it simple, let's place some text inside the cell. Dies Paragraph istRun mit einem-Element möglich.We can do this using a Paragraph with a Run element. Im folgenden finden Inline Sie die entsprechenden Segmente aus dem Diagramm, die Paragraph zeigen, dass ein-Element akzeptiert Run und ein Inline (ein-Element) nur nur-Text annehmen kann.The following is the corresponding segments from the diagram showing that a Paragraph can take an Inline element and that a Run (an Inline element) can only take plain text.

    ![Diagra Über/geordnetes untergeordnetes Schema]für Absatz(./media/flow-ovw-schemawalkthrough3.png "Flow_Ovw_SchemaWalkThrough3")Diagram: Parent/child schema for Paragraph

    ![Diagra Über/geordnetes untergeordnetes Schema]für Run(./media/flow-ovw-schemawalkthrough4.png "Flow_Ovw_SchemaWalkThrough4")Diagram: Parent/Child schema for Run

Nachstehend finden Sie das gesamte Beispiel im Markup.The following is the entire example in markup.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <RichTextBox>
    <FlowDocument>
      
      <!-- Normally a table would have multiple rows and multiple
           cells but this code is for demonstration purposes.-->
      <Table>
        <TableRowGroup>
          <TableRow>
            <TableCell>
              <Paragraph>

                <!-- The schema does not actually require
                     explicit use of the Run tag in markup. It 
                     is only included here for clarity. -->
                <Run>Paragraph in a Table Cell.</Run>
              </Paragraph>
            </TableCell>
          </TableRow>
        </TableRowGroup>
      </Table>

    </FlowDocument>
  </RichTextBox>
</Page>

Programmgesteuertes Arbeiten mit TextElement-InhaltWorking with TextElement Content Programmatically

Der Inhalt TextElement eines wird durch Auflistungen erstellt, sodass der Inhalt von TextElement Objekten Programm gesteuert bearbeitet wird, indem er mit diesen Auflistungen arbeitet.The contents of a TextElement is made up by collections and so programmatically manipulating the contents of TextElement objects is done by working with these collections. Es gibt drei verschiedene Auflistungen TextElement , die von abgeleiteten Klassen verwendet werden:There are three different collections used by TextElement -derived classes:

Sie können diese Sammlungen mithilfe der entsprechenden Eigenschaften von Inlines, Blocksund ListItemsbearbeiten (hinzufügen oder entfernen).You can manipulate (add or remove items) from these collections using the respective properties of Inlines, Blocks, and ListItems. In den folgenden Beispielen wird gezeigt, wie der Inhalt einer Spanne mithilfe der Inlines -Eigenschaft bearbeitet wird.The following examples show how to manipulate the contents of a Span using the Inlines property.

Hinweis

Table verwendet mehrere Auflistungen, um den Inhalt zu bearbeiten. Diese werden hier aber nicht aufgeführt.Table uses several collections to manipulate its contents, but they are not covered here. Weitere Informationen finden Sie unter Übersicht über Tabellen.For more information, see Table Overview.

Im folgenden Beispiel wird ein neues Span -Objekt erstellt, und anschließend Add wird die-Methode verwendet, um zwei Textläufe Spanals untergeordnete Elemente des hinzuzufügen.The following example creates a new Span object, and then uses the Add method to add two text runs as content children of the Span.

Span spanx = new Span();
spanx.Inlines.Add(new Run("A bit of text content..."));
spanx.Inlines.Add(new Run("A bit more text content..."));
Dim spanx As New Span()
spanx.Inlines.Add(New Run("A bit of text content..."))
spanx.Inlines.Add(New Run("A bit more text content..."))

Im folgenden Beispiel wird ein neues Run -Element erstellt, das am Anfang Spander eingefügt wird.The following example creates a new Run element and inserts it at the beginning of the Span.

Run runx = new Run("Text to insert...");
spanx.Inlines.InsertBefore(spanx.Inlines.FirstInline, runx);
Dim runx As New Run("Text to insert...")
spanx.Inlines.InsertBefore(spanx.Inlines.FirstInline, runx)

Im folgenden Beispiel wird das letzte Inline -Element Spanin gelöscht.The following example deletes the last Inline element in the Span.

spanx.Inlines.Remove(spanx.Inlines.LastInline);
spanx.Inlines.Remove(spanx.Inlines.LastInline)

Im folgenden Beispiel wird der gesamte Inhalt (Inline -Elemente) aus dem Spangelöscht.The following example clears all of the contents (Inline elements) from the Span.

spanx.Inlines.Clear();
spanx.Inlines.Clear()

Typen, für die dieses Inhaltsmodell freigegeben istTypes That Share This Content Model

Die folgenden Typen erben von der TextElement -Klasse und können verwendet werden, um den in dieser Übersicht beschriebenen Inhalt anzuzeigen.The following types inherit from the TextElement class and may be used to display the content described in this overview.

Bold, Figure, Floater, Hyperlink, InlineUIContainer, Italic, LineBreak, List, ListItem, Paragraph, Run, Section, Span, Table, Underline.Bold, Figure, Floater, Hyperlink, InlineUIContainer, Italic, LineBreak, List, ListItem, Paragraph, Run, Section, Span, Table, Underline.

Beachten Sie, dass diese Liste nur nicht abstrakte Typen umfasst, Windows SDKWindows SDKdie mit dem verteilt werden.Note that this list only includes nonabstract types distributed with the Windows SDKWindows SDK. Sie können andere Typen verwenden, die von TextElementerben.You may use other types that inherit from TextElement.

Typen, die TextElement-Objekte enthalten könnenTypes That Can Contain TextElement Objects

Siehe WPF-Inhalts Modell.See WPF Content Model.

Siehe auchSee also