WPF-InhaltsmodellWPF Content Model

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) ist eine Präsentationsplattform, die viele Steuerelemente und steuerelementähnliche Typen bereitstellt, deren Hauptaufgabe in der Anzeige unterschiedlicher Inhaltstypen besteht.is a presentation platform that provides many controls and control-like types whose primary purpose is to display different types of content. Um zu bestimmen, welches Steuerelement verwendet oder von welchem Steuerelement abgeleitet werden soll, sollten Sie mit den Objektarten vertraut sein, die ein bestimmtes Steuerelement am besten anzeigen können.To determine which control to use or which control to derive from, you should understand the kinds of objects a particular control can best display.

In diesem Thema wird das Inhaltsmodell für WPFWPF-Steuerelemente und steuerelementähnliche Typen zusammengefasst.This topic summarizes the content model for WPFWPF control and control-like types. Das Inhaltsmodell beschreibt, welche Inhalte in einem Steuerelement verwendet werden können.The content model describes what content can be used in a control. In diesem Thema werden ebenfalls die Inhaltseigenschaften für jedes Inhaltsmodell aufgezählt.This topic also lists the content properties for each content model. Eine Inhaltseigenschaft ist eine Eigenschaft, die zum Speichern des Inhalts des Objekts verwendet wird.A content property is a property that is used to store the content of the object.

Klassen mit beliebigem InhaltClasses That Contain Arbitrary Content

Einige Steuerelemente können ein Objekt eines beliebigen Typs, z. B. eine Zeichenfolge, enthalten eine DateTime Objekt oder ein UIElement , einen Container für zusätzliche Elemente.Some controls can contain an object of any type, such as a string, a DateTime object, or a UIElement that is a container for additional items. Z. B. eine Button kann ein Bild und Text enthalten oder ein CheckBox darf den Wert des DateTime.Now.For example, a Button can contain an image and some text; or a CheckBox can contain the value of DateTime.Now.

In WPFWPF gibt es vier Klassen, die beliebigen Inhalt enthalten.WPFWPF has four classes that can contain arbitrary content. Die folgende Tabelle enthält die Klassen, die von erben Control.The following table lists the classes, which inherit from Control.

Klassen mit beliebigem InhaltClass that contains arbitrary content ContentContent
ContentControl Ein einzelnes beliebiges ObjektA single arbitrary object.
HeaderedContentControl Ein Header und ein einzelnes Element, die beide beliebige Objekte sindA header and a single item, both of which are arbitrary objects.
ItemsControl Eine Auflistung beliebiger ObjekteA collection of arbitrary objects.
HeaderedItemsControl Ein Header und eine Auflistung von Elementen, die alle beliebige Objekte sindA header and a collection of items, all of which are arbitrary objects.

Steuerelemente, die von diesen Klassen erben, können dieselbe Art von Inhalt enthalten und den Inhalt auf die gleiche Weise behandeln.Controls that inherit from these classes can contain the same type of content and treat the content in the same way. Die folgende Abbildung zeigt ein Steuerelement aus den einzelnen Inhaltsmodellen, das ein Bild enthält und Text:The following illustration shows one control from each content model that contains an image and some text:

Screenshot mit vier verschiedene Steuerelemente, die von jedes Inhaltsmodell aufgezählt.

Steuerelemente mit einem einzelnen beliebigen ObjektControls That Contain a Single Arbitrary Object

Die ContentControl Klasse enthält nur ein beliebiges Inhaltselement.The ContentControl class contains a single piece of arbitrary content. Die Inhaltseigenschaft ist Content.Its content property is Content. Die folgenden Steuerelemente erben von ContentControl und verwenden dessen Inhaltsmodell:The following controls inherit from ContentControl and use its content model:

Die folgende Abbildung zeigt vier Schaltflächen, deren Content festgelegt ist, in eine Zeichenfolge, ein DateTime Objekt eine Rectangle, und ein Panel , enthält ein Ellipse und ein TextBlock:The following illustration shows four buttons whose Content is set to a string, a DateTime object, a Rectangle, and a Panel that contains an Ellipse and a TextBlock:

Screenshot mit vier Schaltflächen mit unterschiedlichen Inhaltstypen.

Ein Beispiel zum Festlegen der Content -Eigenschaft finden Sie unter ContentControl.For an example of how to set the Content property, see ContentControl.

Steuerelemente mit einem Header und einzelnen beliebigen ObjektControls That Contain a Header and a Single Arbitrary Object

Die HeaderedContentControl Klasse erbt von ContentControl und zeigt den Inhalt mit einem Header an.The HeaderedContentControl class inherits from ContentControl and displays content with a header. Es erbt die Inhaltseigenschaft, Content, von ContentControl und definiert die Header Eigenschaft vom Typ Objectdaher beide können ein beliebiges Objekt sein.It inherits the content property, Content, from ContentControl and defines the Header property that is of type Object; therefore, both can be an arbitrary object.

Die folgenden Steuerelemente erben von HeaderedContentControl und verwenden dessen Inhaltsmodell:The following controls inherit from HeaderedContentControl and use its content model:

Die folgende Abbildung zeigt zwei TabItem Objekte.The following illustration shows two TabItem objects. Die erste TabItem hat UIElement Objekte als die Header und Content.The first TabItem has UIElement objects as the Header and the Content. Die Header nastaven NA hodnotu eine StackPanel , enthält ein Ellipse und TextBlock.The Header is set to a StackPanel that contains an Ellipse and a TextBlock. Die Content nastaven NA hodnotu eine StackPanel , enthält eine TextBlock und Label.The Content is set to a StackPanel that contains a TextBlock and a Label. Die zweite TabItem hat eine Zeichenfolge die Header und TextBlock in die Content.The second TabItem has a string in the Header and a TextBlock in the Content.

TabControl-Komponente, die verschiedene Arten in die Header-Eigenschaft verwendet.

Ein Beispiel zum Erstellen von TabItem Objekten finden Sie HeaderedContentControl.For an example of how to create TabItem objects, see HeaderedContentControl.

Steuerelemente mit einer Auflistung von beliebigen ObjektenControls That Contain a Collection of Arbitrary Objects

Die ItemsControl Klasse erbt von Control und kann mehrere Elemente, z. B. Zeichenfolgen, Objekte oder andere Elemente enthalten.The ItemsControl class inherits from Control and can contain multiple items, such as strings, objects, or other elements. Die Inhaltseigenschaften sind ItemsSource und Items.Its content properties are ItemsSource and Items. ItemsSource dient normalerweise zum Auffüllen der ItemsControl mit einer datenauflistung.ItemsSource is typically used to populate the ItemsControl with a data collection. Wenn Sie nicht, verwenden Sie eine Auflistung zum Auffüllen möchten der ItemsControl, Sie können Elemente hinzufügen, mit der Items Eigenschaft.If you do not want to use a collection to populate the ItemsControl, you can add items by using the Items property.

Die folgenden Steuerelemente erben von ItemsControl und verwenden dessen Inhaltsmodell:The following controls inherit from ItemsControl and use its content model:

Die folgende Abbildung zeigt eine ListBox , enthält die folgenden Elementtypen:The following illustration shows a ListBox that contains these types of items:

Screenshot mit einer ListBox mit vier Inhaltstypen.

Steuerelemente mit einem Header und einer Auflistung von beliebigen ObjektenControls That Contain a Header and a Collection of Arbitrary Objects

Die HeaderedItemsControl Klasse erbt von ItemsControl und kann mehrere Elemente, z. B. Zeichenfolgen, Objekte oder andere Elemente und einen Header enthalten.The HeaderedItemsControl class inherits from ItemsControl and can contain multiple items, such as strings, objects, or other elements, and a header. Es erbt die ItemsControl -Inhaltseigenschaften, ItemsSource, und Items, und definiert die Header -Eigenschaft, die ein beliebiges Objekt sein kann.It inherits the ItemsControl content properties, ItemsSource, and Items, and it defines the Header property that can be an arbitrary object.

Die folgenden Steuerelemente erben von HeaderedItemsControl und verwenden dessen Inhaltsmodell:The following controls inherit from HeaderedItemsControl and use its content model:

Klassen mit einer Auflistung von UIElement-ObjektenClasses That Contain a Collection of UIElement Objects

Die Panel -Klasse positioniert und ordnet untergeordnete UIElement Objekte.The Panel class positions and arranges child UIElement objects. Die Inhaltseigenschaft ist Children.Its content property is Children.

Die folgenden Klassen erben von der Panel Klasse, und verwenden dessen Inhaltsmodell:The following classes inherit from the Panel class and use its content model:

Weitere Informationen finden Sie unter Übersicht über Panel-Elemente.For more information, see Panels Overview.

Klassen, die sich auf die Anzeige eines UIElement-Objekts auswirkenClasses That Affect the Appearance of a UIElement

Die Decorator -Klasse wendet visuelle Effekte auf oder um ein einzelnes untergeordnetes Element UIElement.The Decorator class applies visual effects onto or around a single child UIElement. Die Inhaltseigenschaft ist Child.Its content property is Child. Die folgenden Klassen erben von Decorator und verwenden dessen Inhaltsmodell:The following classes inherit from Decorator and use its content model:

Die folgende Abbildung zeigt eine TextBox aufweist (versehen mit) eine Border darum.The following illustration shows a TextBox that has (is decorated with) a Border around it.

TextBox mit schwarzem RahmenTextBox with black border
Textfeld mit einem RahmenTextBlock that has a Border

Klassen, die visuelles Feedback zu einem UIElement bereitstellenClasses That Provide Visual Feedback About a UIElement

Die Adorner -Klasse stellt visuelle Hinweise zu einem Benutzer.The Adorner class provides visual cues to a user. Verwenden Sie z. B. eine Adorner um Elementen funktionale Handles hinzuzufügen oder Zustandsinformationen über Steuerelemente bereitzustellen.For example, use an Adorner to add functional handles to elements or provide state information about a control. Die Adorner Klasse stellt ein Framework bereit, sodass Sie eigene Adorner erstellen können.The Adorner class provides a framework so that you can create your own adorners. WPFWPF stellt keine implementierten Adorner bereit.does not provide any implemented adorners. Weitere Informationen finden Sie unter Übersicht über Adorner.For more information, see Adorners Overview.

Klassen, mit denen Benutzer Text eingeben könnenClasses That Enable Users to Enter Text

WPF bietet drei primäre Steuerelemente, mit denen Benutzer Text eingeben können.WPF provides three primary controls that enable users to enter text. Jedes Steuerelement zeigt den Text unterschiedlich an.Each control displays the text differently. Die folgende Tabelle enthält diese drei textbezogene Steuerelemente, ihre Funktionen bei der Textanzeige und ihre Eigenschaften, die den Text des Steuerelements enthalten.The following table lists these three text-related controls, their capabilities when they display text, and their properties that contain the control's text.

SteuerelementControl Text wird angezeigt alsText is displayed as InhaltseigenschaftContent property
TextBox Nur-TextPlain text Text
RichTextBox Formatierter TextFormatted text Document
PasswordBox Ausgeblendeter Text (Zeichen werden maskiert)Hidden text (characters are masked) Password

Klassen, die Ihren Text anzeigenClasses That Display Your Text

Es können mehrere Klassen verwendet werden, um einfachen oder formatierten Text anzuzeigen.Several classes can be used to display plain or formatted text. Sie können TextBlock um kleine Mengen an Text anzuzeigen.You can use TextBlock to display small amounts of text. Wenn Sie große Textmengen anzeigen möchten, verwenden Sie die FlowDocumentReader, FlowDocumentPageViewer, oder FlowDocumentScrollViewer Steuerelemente.If you want to display large amounts of text, use the FlowDocumentReader, FlowDocumentPageViewer, or FlowDocumentScrollViewer controls.

Die TextBlock verfügt über zwei Inhaltseigenschaften: Text und Inlines.The TextBlock has two content properties: Text and Inlines. Wenn Sie möchten, um Text anzuzeigen, die konsistente Formatierung, verwendet der Text Eigenschaft ist häufig die beste Wahl.When you want to display text that uses consistent formatting, the Text property is often your best choice. Wenn Sie im gesamten Text eine andere Formatierung verwenden möchten, verwenden Sie die Inlines Eigenschaft.If you plan to use different formatting throughout the text, use the Inlines property. Die Inlines Eigenschaft ist eine Sammlung von Inline -Objekte, die Formatierung von Text anzugeben.The Inlines property is a collection of Inline objects, which specify how to format text.

Die folgende Tabelle listet die Inhaltseigenschaft für FlowDocumentReader, FlowDocumentPageViewer, und FlowDocumentScrollViewer Klassen.The following table lists the content property for FlowDocumentReader, FlowDocumentPageViewer, and FlowDocumentScrollViewer classes.

SteuerelementControl InhaltseigenschaftContent property InhaltseigenschaftstypContent property type
FlowDocumentPageViewer DokumentDocument IDocumentPaginatorSource
FlowDocumentReader DokumentDocument FlowDocument
FlowDocumentScrollViewer DokumentDocument FlowDocument

Die FlowDocument implementiert die IDocumentPaginatorSource Schnittstelle; deshalb können alle drei Klassen durchführen einer FlowDocument als Inhalt.The FlowDocument implements the IDocumentPaginatorSource interface; therefore, all three classes can take a FlowDocument as content.

Klassen, die den Text formatierenClasses That Format Your Text

TextElement und den zugehörigen Klassen können Sie Text formatieren.TextElement and its related classes allow you to format text. TextElement -Objekte enthalten, und Formatieren von Text in TextBlock und FlowDocument Objekte.TextElement objects contain and format text in TextBlock and FlowDocument objects. Die zwei primären Typen von TextElement Objekte sind Block Elemente und Inline Elemente.The two primary types of TextElement objects are Block elements and Inline elements. Ein Block -Element stellt einen Textblock, z. B. einen Absatz oder eine Liste dar.A Block element represents a block of text, such as a paragraph or list. Ein Inline -Element stellt einen Teil des Texts in einem Block dar.An Inline element represents a portion of text in a block. Viele Inline -Klassen geben die Formatierung für den Text, der auf dem sie angewendet werden.Many Inline classes specify formatting for the text to which they are applied. Jede TextElement verfügt über ein eigenes Inhaltsmodell.Each TextElement has its own content model. Weitere Informationen finden Sie unter Übersicht über das TextElement-Inhaltsmodell.For more information, see the TextElement Content Model Overview.

Siehe auchSee also