Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

WPF-Inhaltsmodell

 

Veröffentlicht: Juni 2016

Windows Presentation Foundation (WPF) ist eine Präsentationsplattform, die viele Steuerelemente und steuerelementähnliche Typen enthält, deren Hauptaufgabe darin besteht, unterschiedliche Inhaltstypen anzuzeigen. Um zu ermitteln, welches Steuerelement verwendet werden soll oder von welchem Steuerelement abgeleitet werden soll, sollten Sie mit den Arten von Objekten vertraut sein, die ein bestimmtes Steuerelement am besten anzeigen kann.

Dieses Thema fasst das Inhaltsmodell für WPF-Steuerelement- und steuerelementähnliche Typen zusammen. Das Inhaltsmodell beschreibt, welcher Inhalt in einem Steuerelement verwendet werden kann. In diesem Thema sind auch die Inhaltseigenschaften für jedes Inhaltsmodell aufgeführt. Eine Inhaltseigenschaft ist eine Eigenschaft, mit der der Inhalt des Objekts gespeichert werden kann.

Einige Steuerelemente können ein Objekt irgendeines Typs enthalten, z. B. eine Zeichenfolge, ein DateTime-Objekt oder ein UIElement, das ein Container für zusätzliche Elemente ist. Eine Button kann z. B. ein Bild und etwas Text enthalten; oder ein CheckBox kann den Wert von DateTime.Now enthalten.

WPF verfügt über vier Klassen, die beliebigen Inhalt enthalten können. In der folgenden Tabelle sind die Klassen aufgelistet, die von Control erben.

Klasse, die beliebigen Inhalt enthält

Inhalt

ContentControl

Ein einzelnes beliebiges Objekt.

HeaderedContentControl

Ein Header und ein einzelnes Element - beides sind beliebige Objekte.

ItemsControl

Eine Auflistung von beliebigen Objekten.

HeaderedItemsControl

Ein Header und eine Auflistung von Elementen - alle sind beliebige Objekte.

Steuerelemente, die von diesen Klassen erben, können denselben Inhaltstyp enthalten und den Inhalt auf die gleiche Weise behandeln. Die folgende Abbildung zeigt ein Steuerelement von den einzelnen Inhaltsmodellen an, das ein Bild und einigen Text enthält.

Button, GroupBox, Listbox, TreeViewItem

Die ContentControl-Klasse enthält beliebigen Inhalt. Die Inhaltseigenschaft ist Content. Die folgenden Steuerelemente erben von ContentControl und verwenden sein Inhaltsmodell:

In der folgenden Abbildung sind vier Schaltflächen dargestellt, deren Content auf eine Zeichenfolge, ein DateTime-Objekt, ein Rectangle und ein Panel festgelegt wird, die eine Ellipse und einen TextBlock enthalten.

Vier Schaltflächen

Vier Schaltflächen mit verschiedenen Inhaltstypen

Ein Beispiel für das Festlegen der Content-Eigenschaft finden Sie unter ContentControl.

Die HeaderedContentControl-Klasse erbt von ContentControl und zeigt Inhalt mit einem Header an. Sie erbt die Content-Inhaltseigenschaft von ContentControl und definiert die Header-Eigenschaft, die den Object-Typ aufweist. Daher können beide ein beliebiges Objekt sein.

Die folgenden Steuerelemente erben von HeaderedContentControl und verwenden das entsprechende Inhaltsmodell:

Die folgende Abbildung zeigt zwei TabItem-Objekte. Das erste TabItem hat UIElement-Objekte als Header und Content. Der Header ist auf ein StackPanel festgelegt, das eine Ellipse und einen TextBlock enthält. Der Content ist auf ein StackPanel festgelegt, das eine TextBlock und einen Label enthält. Das zweite TabItem hat eine Zeichenfolge im Header und einen TextBlock im Content.

TabControl

TabControl, der unterschiedliche Typen in der Header-Eigenschaft verwendet

Ein Beispiel für die Erstellung von TabItem-Objekten finden Sie unter HeaderedContentControl.

Die ItemsControl-Klasse erbt von Control und kann mehrere Elemente enthalten, z. B. Zeichenfolgen, Objekte oder andere Elemente. Die Inhaltseigenschaften sind ItemsSource und Items. ItemsSource wird in der Regel verwendet, um den ItemsControl mit einer Datensammlung aufzufüllen. Wenn Sie keine Sammlung verwende möchten, um das ItemsControl aufzufüllen, können Sie mithilfe der Items-Eigenschaft Elemente hinzufügen.

Die folgenden Steuerelemente erben von ItemsControl und verwenden sein Inhaltsmodell:

In der folgenden Abbildung wird ein ListBox dargestellt, das die folgenden Elementtypen enthält.

ListBox mit vier Inhaltstypen

Listenfeld, das mehrere Typen von Objekten enthält

Die HeaderedItemsControl-Klasse erbt von ItemsControl und kann mehrere Elemente enthalten, z. B. Zeichenfolgen, Objekte oder andere Elemente sowie eine Kopfzeile. Sie erbt die ItemsControl-Inhaltseigenschaften, ItemsSource und Items, und definiert die Header-Eigenschaft, die ein beliebiges Objekt sein kann.

Die folgenden Steuerelemente erben von HeaderedItemsControl und verwenden sein Inhaltsmodell:

Die Panel-Klasse positioniert und ordnet untergeordnete UIElement-Objekte an. Die Inhaltseigenschaft ist Children.

Die folgenden Klassen erben von der Panel-Klasse und verwenden ihr Inhaltsmodell:

Weitere Informationen finden Sie unter Übersicht über Panel-Elemente.

Die Decorator-Klasse wendet visuelle Effekte auf oder um ein einzelnes untergeordnetes UIElement an. Die Inhaltseigenschaft ist Child. Die folgenden Klassen erben von Decorator und verwenden dessen Inhaltsmodell:

Die folgende Abbildung zeigt ein TextBox, das mit einem umlaufenden Border-Element ergänzt wurde.

TextBox mit schwarzem Rahmen

Textblock mit einem Rahmen

Die Adorner-Klasse stellt einem Benutzer visuelle Hinweise bereit. Verwenden Sie z. B. einen Adorner, um Elementen funktionale Handles hinzuzufügen oder Zustandsinformationen zu einem Steuerelement bereitzustellen. Die Adorner-Klasse stellt ein Framework bereit, damit Sie eigene Adorner erstellen können. WPF stellt keine implementierten Adorner bereit. Weitere Informationen finden Sie unter Übersicht über Adorner.

WPF stellt drei primäre Steuerelemente bereit, die Benutzern die Eingabe von Text ermöglichen. Jedes Steuerelement zeigt den Text anders an. In der folgenden Tabelle sind diese drei textbezogenen Steuerelemente aufgeführt sowie ihre Funktionen, wenn sie Text anzeigen, und ihre Eigenschaften, die den Text des Steuerelements enthalten.

Steuerelement

Text wird angezeigt als

Inhaltseigenschaft

TextBox

Nur-Text

Text

RichTextBox

Formatierter Text

Document

PasswordBox

Ausgeblendeter Text (Zeichen werden maskiert)

Password

Mehrere Klassen können verwendet werden, um einfachen oder formatierten Text anzuzeigen. Sie können kleine Mengen an Text mithilfe von TextBlock anzeigen. Wenn Sie große Textmengen anzeigen möchten, verwenden Sie die Steuerelemente FlowDocumentReader, FlowDocumentPageViewer oder FlowDocumentScrollViewer.

Der TextBlock verfügt über zwei Inhaltseigenschaften: Text und Inlines. Wenn Sie Text anzeigen möchten, der eine einheitliche Formatierung verwendet, ist die Text-Eigenschaft oft die beste Auswahl. Wenn Sie im gesamten Text eine andere Formatierung verwenden möchten, verwenden Sie die Inlines-Eigenschaft. Die Inlines-Eigenschaft ist eine Auflistung von Inline-Objekten, die angeben, wie Text formatiert werden soll.

In der folgenden Tabelle ist die Inhaltseigenschaft für FlowDocumentReader-, FlowDocumentPageViewer- und FlowDocumentScrollViewer-Klassen aufgeführt.

Steuerelement

Inhaltseigenschaft

Typ der Inhaltseigenschaft

FlowDocumentPageViewer

Document

IDocumentPaginatorSource

FlowDocumentReader

Document

FlowDocument

FlowDocumentScrollViewer

Document

FlowDocument

Das FlowDocument-Element implementiert die IDocumentPaginatorSource-Schnittstelle. Daher können alle drei Klassen ein FlowDocument-Element als Inhalt annehmen.

Mit TextElement und den zugehörigen Klassen können Sie Text formatieren. TextElement-Objekte enthalten und formatieren Text in TextBlock- und FlowDocument-Objekten. Die zwei primären Typen von TextElement-Objekten sind Block-Elemente und Inline-Elemente. Ein Block-Element stellt einen Textblock dar, z. B. einen Absatz oder eine Liste. Ein Inline-Element stellt einen Teil des Texts in einem Block dar. Viele Inline-Klassen geben Formatierung für den Text an, auf den sie angewendet werden. Jedes TextElement hat ein eigenes Inhaltsmodell. Weitere Informationen finden Sie unter Übersicht über das TextElement-Inhaltsmodell.

Anzeigen: