Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento model obsahu popisuje podporovaný obsah pro TextElement. Třída Paragraph je typ TextElement. Model obsahu popisuje, jaké objekty a prvky mohou být obsaženy v jiných. Tento přehled shrnuje model obsahu používaný pro objekty odvozené z TextElement. Další informace najdete v tématu Přehled tokového dokumentu.
Diagram modelu obsahu
Následující diagram shrnuje model obsahu pro třídy odvozené z TextElement a také to, jak do tohoto modelu zapadají jiné třídy, které nejsou TextElement.
Diagram 
Jak je vidět z předchozího diagramu, podřízené prvky povolené pro určitý prvek nemusí nutně určovat, zda je třída odvozena z třídy Block nebo z třídy Inline. Například Span (Inlineodvozená třída) může mít pouze Inline podřízené prvky, ale Figure (také Inline-odvozená třída) může mít pouze Block podřízených elementů. Diagram je proto užitečný k rychlému určení toho, který prvek může být obsažen v jiném prvku. Jako příklad použijeme diagram k určení, jak vytvořit obsah toku RichTextBox.
RichTextBox musí obsahovat FlowDocument, který zase musí obsahovat objekt odvozený z Block. Následuje odpovídající segment z předchozího diagramu.
Diagram

Zatím to vypadá takto.
<RichTextBox> <FlowDocument> <!-- One or more Block-derived object… --> </FlowDocument> </RichTextBox>Podle diagramu existuje několik Block prvků, ze které si můžete vybrat, včetně Paragraph, Section, Table, Lista BlockUIContainer (viz třídy odvozené od bloku v předchozím diagramu). Řekněme, že chceme Table. Podle předchozího diagramu Table obsahuje TableRowGroup, které obsahují prvky TableRow, tyto prvky obsahují TableCell prvky, které obsahují objekt odvozený z Block. Následuje odpovídající segment pro Table převzatý z předchozího diagramu.
diagram

Následuje odpovídající značení.
<RichTextBox> <FlowDocument> <Table> <TableRowGroup> <TableRow> <TableCell> <!-- One or more Block-derived object… --> </TableCell> </TableRow> </TableRowGroup> </Table> </FlowDocument> </RichTextBox>Jeden nebo více Block prvků je opět vyžadován pod TableCell. Abychom to mohli jednoduše udělat, dejte do buňky nějaký text. Můžeme to udělat pomocí Paragraph s prvkem Run. Následuje odpovídající segment z diagramu znázorňující, že Paragraph může obsahovat prvek Inline a že Run (element Inline) může obsahovat pouze prostý text.
Diagram:

Diagram

Následuje celý příklad v kódu.
<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>
Práce s obsahem TextElement prostřednictvím kódu programu
Obsah TextElement se skládá z kolekcí a tak programově manipuluje s obsahem TextElement objektů pomocí těchto kolekcí. Třídy TextElement -derived používají tři různé kolekce:
InlineCollection: Představuje kolekci prvků Inline. InlineCollection definuje povolený podřízený obsah prvků Paragraph, Spana TextBlock.
BlockCollection: Představuje kolekci prvků Block. BlockCollection definuje povolený podřízený obsah prvků FlowDocument, Section, ListItem, TableCell, Floatera Figure.
ListItemCollection: Prvek obsahu toku, který představuje konkrétní položku obsahu v seřazené nebo neuspořádané List.
S těmito kolekcemi můžete manipulovat (přidávat nebo odebírat položky) pomocí příslušných vlastností vložených prvků, blokůa položek seznamu. Následující příklady ukazují, jak manipulovat s obsahem Span pomocí Inlines vlastnost.
Poznámka:
Tabulka používá několik kolekcí k manipulaci se svým obsahem, ale nejsou zde podrobně popsány. Další informace najdete v přehledu tabulky
Následující příklad vytvoří nový objekt Span, a pak použije metodu Add pro přidání dvou textových bloků jako obsahové děti 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..."))
Následující příklad vytvoří nový Run element a vloží jej na začátek 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)
Následující příklad odstraní poslední Inline prvek v Span.
spanx.Inlines.Remove(spanx.Inlines.LastInline);
spanx.Inlines.Remove(spanx.Inlines.LastInline)
Následující příklad vymaže veškerý obsah (Inline elementy) z Span.
spanx.Inlines.Clear();
spanx.Inlines.Clear()
Typy, které sdílejí tento model obsahu
Následující typy dědí z třídy TextElement a mohou být použity k zobrazení obsahu popsaného v tomto přehledu.
Bold, Figure, , Floater, Hyperlink, InlineUIContainerItalicLineBreakListListItemParagraphRunSectionSpanTable. Underline
Všimněte si, že tento seznam obsahuje pouze neabstraktní typy distribuované se sadou Windows SDK. Můžete použít jiné typy, které dědí z TextElement.
Typy, které mohou obsahovat objekty TextElement
Vizte model obsahu WPF.
Viz také
- Manipulace s objektem FlowDocument prostřednictvím vlastnosti Blocks
- Manipulujte prvky obsahu toku prostřednictvím vlastnosti Bloků
- Manipulace s objektem FlowDocument prostřednictvím vlastnosti Blocks
- Manipulujte se sloupci tabulky prostřednictvím vlastnosti sloupce
- Manipulujte se skupinami řádků tabulky prostřednictvím vlastnosti RowGroups
.NET Desktop feedback