Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 quel contrôle utiliser ou quel contrôle dériver, vous devez comprendre les types d’objets qu’un contrôle particulier peut afficher le mieux.
Cette rubrique récapitule le modèle de contenu pour les types de contrôle et les types similaires aux contrôles 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é 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 un seul élément, qui sont tous deux des objets arbitraires. |
ItemsControl | Collection d’objets arbitraires. |
HeaderedItemsControl | En-tête et collection d’éléments, qui sont tous 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 modèle de contenu qui contient une image et un texte :
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 de ContentControl et utilisent son modèle de contenu :
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:
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 classe HeaderedContentControl hérite de ContentControl et affiche du 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 de HeaderedContentControl et utilisent son modèle de contenu :
L’illustration suivante montre deux TabItem objets. Le premier TabItem contient UIElement objets comme le Header et le Content. La Header est définie sur un StackPanel qui contient un Ellipse et un TextBlock. La Content est réglée 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.
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 de ItemsControl et utilisent son modèle de contenu :
L’illustration suivante montre un ListBox qui contient ces types d’éléments :
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 de HeaderedItemsControl et utilisent son modèle de contenu :
Classes qui contiennent une collection d’objets UIElement
La classe Panel 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 modèle de contenu :
Pour plus d’informations, consultez La vue d’ensemble des panneaux.
Classes qui affectent l’apparence d'un UIElement
La Decorator classe applique des effets visuels sur ou autour d’un unique enfant UIElement. Sa propriété de contenu est Child. Les classes suivantes héritent de Decorator et utilisent son modèle de contenu :
L’illustration suivante montre un TextBox qui a (est décoré avec) un Border autour de lui.
TextBlock qui a une bordure
Classes qui fournissent des retours visuels sur un élément d'interface utilisateur
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 Présentation des éléments d'habillage.
Classes qui permettent aux utilisateurs d’entrer du texte
WPF fournit trois contrôles principaux qui permettent aux utilisateurs d’entrer du texte. Chaque contrôle affiche le texte différemment. Le tableau suivant répertorie ces trois contrôles liés au texte, leurs fonctionnalités lorsqu’ils affichent du texte et leurs propriétés qui contiennent le texte du contrôle.
Contrôle | Le texte est affiché en tant que | Content, propriété |
---|---|---|
TextBox | Texte brut | Text |
RichTextBox | Texte mis en forme | Document |
PasswordBox | Texte masqué (caractères 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 FlowDocumentReader, FlowDocumentPageViewer, ou FlowDocumentScrollViewer.
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ôle | Content, propriété | Type de propriété de contenu |
---|---|---|
FlowDocumentPageViewer | Document | IDocumentPaginatorSource |
FlowDocumentReader | Document | FlowDocument |
FlowDocumentScrollViewer | Document | FlowDocument |
FlowDocument implémente l'interface IDocumentPaginatorSource ; par conséquent, les trois classes peuvent prendre un FlowDocument comme contenu.
Classes qui mettent en forme votre texte
TextElement et ses classes associées vous permettent de mettre en forme du texte. Les objets TextElement contiennent et mettent en forme du texte dans des objets TextBlock et FlowDocument. Les deux principaux types d'objets TextElement sont les éléments Block et Inline. 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 modèle de contenu. Pour plus d’informations, consultez la vue d’ensemble du modèle de contenu TextElement.
Voir aussi
.NET Desktop feedback