Modèle de contenu WPF

Windows Presentation Foundation (WPF) est une plateforme de présentation qui fournit de nombreux contrôles et types de type contrôle dont l’objectif principal est d’afficher différents types de contenu. Pour déterminer le contrôle à utiliser ou le contrôle d’où dériver, vous devez comprendre les types d’objets qu’un contrôle donné peut afficher de manière optimale.

Cette rubrique récapitule le con mode tente l pour les types de contrôle et de type contrôle WPF. Le modèle de contenu décrit le contenu qui peut être utilisé dans un contrôle. Cette rubrique répertorie également les propriétés de contenu pour chaque modèle de contenu. Une propriété de contenu est une propriété qui est utilisée pour stocker le contenu de l’objet.

Classes qui contiennent du contenu arbitraire

Certains contrôles peuvent contenir un objet de n’importe quel type, tel qu’une chaîne, un DateTime objet ou un UIElement conteneur pour des éléments supplémentaires. Par exemple, un Button peut contenir une image et un texte ; ou un CheckBox peut contenir la valeur de DateTime.Now.

WPF possède quatre classes qui peuvent contenir du contenu arbitraire. Le tableau suivant répertorie les classes qui héritent de Control.

Classe qui contient du contenu arbitraire Contenu
ContentControl Objet arbitraire unique.
HeaderedContentControl En-tête et élément unique, correspondant tous deux à des objets arbitraires.
ItemsControl Collection d’objets arbitraires.
HeaderedItemsControl En-tête et collection d’éléments, correspondant tous deux à des objets arbitraires.

Les contrôles qui héritent de ces classes peuvent contenir le même type de contenu et traiter le contenu de la même façon. L’illustration suivante montre un contrôle de chaque con mode tente l qui contient une image et un texte :

Screenshot that shows four different controls, one from each content model.

Contrôles qui contiennent un objet arbitraire unique

La ContentControl classe contient un seul élément de contenu arbitraire. Sa propriété de contenu est Content. Les contrôles suivants héritent et ContentControl utilisent son con mode tente l :

L’illustration suivante montre quatre boutons dont Content la valeur est définie sur une chaîne, un DateTime objet, un Rectangleet un Panel qui contient un Ellipse et un TextBlock:

Screenshot that shows four buttons with different content types.

Pour obtenir un exemple de définition de la Content propriété, consultez ContentControl.

Contrôles qui contiennent un en-tête et un objet arbitraire unique

La HeaderedContentControl classe hérite et affiche du ContentControl contenu avec un en-tête. Il hérite de la propriété de contenu, Contentde ContentControl et définit la Header propriété de type Object; par conséquent, les deux peuvent être un objet arbitraire.

Les contrôles suivants héritent et HeaderedContentControl utilisent son con mode tente l :

L’illustration suivante montre deux TabItem objets. Le premier TabItem a UIElement des objets comme le Header et le Content. La Header valeur est définie sur un StackPanel qui contient un Ellipse et un TextBlock. La Content valeur est définie sur un StackPanel qui contient un TextBlock et un Label. Le second TabItem a une chaîne dans le Header et un TextBlock dans le Content.

TabControl that uses different types in the Header property.

Pour obtenir un exemple de création TabItem d’objets, consultez HeaderedContentControl.

Contrôles qui contiennent une collection d’objets arbitraires

La ItemsControl classe hérite Control et peut contenir plusieurs éléments, tels que des chaînes, des objets ou d’autres éléments. Ses propriétés de contenu sont ItemsSource et Items. ItemsSource est généralement utilisé pour remplir la ItemsControl collection de données. Si vous ne souhaitez pas utiliser une collection pour remplir les ItemsControléléments, vous pouvez ajouter des éléments à l’aide de la Items propriété.

Les contrôles suivants héritent et ItemsControl utilisent son con mode tente l :

L’illustration suivante montre un ListBox qui contient ces types d’éléments :

Screenshot that shows a ListBox with four types of content.

Contrôles qui contiennent un en-tête et une collection d’objets arbitraires

La HeaderedItemsControl classe hérite ItemsControl et peut contenir plusieurs éléments, tels que des chaînes, des objets ou d’autres éléments, et un en-tête. Il hérite des ItemsControl propriétés de contenu, ItemsSourceet Itemsdéfinit la Header propriété qui peut être un objet arbitraire.

Les contrôles suivants héritent et HeaderedItemsControl utilisent son con mode tente l :

Classes qui contiennent une collection d’objets UIElement

La Panel classe positionne et organise les objets enfants UIElement . Sa propriété de contenu est Children.

Les classes suivantes héritent de la Panel classe et utilisent son con mode tente l :

Pour plus d’informations, consultez la page Vue d’ensemble de Panel.

Classes qui affectent l’apparence d’un UIElement

La Decorator classe applique des effets visuels sur ou autour d’un enfant UIElementunique. Sa propriété de contenu est Child. Les classes suivantes héritent et Decorator utilisent son con mode tente l :

L’illustration suivante montre un TextBox qui a (est décoré avec) un Border autour de lui.

TextBox with black border
TextBlock avec une bordure

Classes qui fournissent des commentaires visuels sur un UIElement

La Adorner classe fournit des indications visuelles à un utilisateur. Par exemple, utilisez un Adorner pour ajouter des handles fonctionnels à des éléments ou fournir des informations d’état sur un contrôle. La Adorner classe fournit une infrastructure qui vous permet de créer vos propres ornements. WPF ne fournit aucun ornement implémenté. Pour plus d’informations, consultez Vue d’ensemble des ornements.

Classes qui permettent aux utilisateurs d’entrer du texte

WPF fournit trois principaux contrôles qui permettent aux utilisateurs d’entrer du texte. Chaque contrôle affiche le texte de manière différente. Le tableau suivant répertorie ces trois contrôles liés au texte, leurs fonctions lors de l’affichage du texte et leurs propriétés qui contiennent le texte du contrôle.

Contrôler Texte affiché en tant que Propriété de contenu
TextBox Texte brut Text
RichTextBox Texte mis en forme Document
PasswordBox Texte masqué (les caractères sont masqués) Password

Classes qui affichent votre texte

Plusieurs classes peuvent être utilisées pour afficher du texte brut ou mis en forme. Vous pouvez utiliser TextBlock pour afficher de petites quantités de texte. Si vous souhaitez afficher de grandes quantités de texte, utilisez les contrôles ou FlowDocumentScrollViewerFlowDocumentPageViewerles FlowDocumentReadercontrôles.

Il TextBlock a deux propriétés de contenu : Text et Inlines. Lorsque vous souhaitez afficher du texte qui utilise une mise en forme cohérente, la Text propriété est souvent votre meilleur choix. Si vous envisagez d’utiliser une mise en forme différente tout au long du texte, utilisez la Inlines propriété. La Inlines propriété est une collection d’objets Inline , qui spécifient comment mettre en forme du texte.

Le tableau suivant répertorie la propriété de contenu pour FlowDocumentReader, FlowDocumentPageVieweret FlowDocumentScrollViewer les classes.

Contrôler Propriété de contenu Type de propriété de contenu
FlowDocumentPageViewer Document IDocumentPaginatorSource
FlowDocumentReader Document FlowDocument
FlowDocumentScrollViewer Document FlowDocument

L’interface FlowDocumentIDocumentPaginatorSource implémente ; par conséquent, les trois classes peuvent prendre en FlowDocument tant que contenu.

Classes de mise en forme du texte

TextElement et ses classes associées vous permettent de mettre en forme du texte. TextElementles objets contiennent et mettez en forme du texte dans et FlowDocument des TextBlock objets. Les deux principaux types d’objets TextElement sont des Block éléments et Inline des éléments. Un Block élément représente un bloc de texte, tel qu’un paragraphe ou une liste. Un Inline élément représente une partie du texte dans un bloc. De nombreuses Inline classes spécifient la mise en forme du texte auquel elles sont appliquées. Chacun TextElement a son propre con mode tente l. Pour plus d’informations, consultez la page Vue d’ensemble du modèle de contenu de TextElement.

Voir aussi