ItemsControl.ItemsPanel Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit le modèle qui définit le panneau qui contrôle la disposition des éléments.
public:
property System::Windows::Controls::ItemsPanelTemplate ^ ItemsPanel { System::Windows::Controls::ItemsPanelTemplate ^ get(); void set(System::Windows::Controls::ItemsPanelTemplate ^ value); };
[System.ComponentModel.Bindable(false)]
public System.Windows.Controls.ItemsPanelTemplate ItemsPanel { get; set; }
[<System.ComponentModel.Bindable(false)>]
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate
Valeur de propriété
Un ItemsPanelTemplate qui définit le panneau à utiliser pour la disposition des éléments. La valeur par défaut de l'ItemsControl est une ItemsPanelTemplate qui spécifie un StackPanel.
- Attributs
Exemples
Pour créer un ListBoxhorizontal, vous pouvez créer un modèle qui spécifie un StackPanel horizontal et le définir comme propriété ItemsPanel. L’exemple suivant montre un ListBoxStyle qui crée une ListBoxhorizontale.
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
L’exemple suivant utilise un ControlTemplate pour créer un ListBox horizontal qui a des angles arrondis. Dans cet exemple, au lieu de définir la propriété ItemsPanel comme dans l’exemple précédent, la StackPanel horizontale est spécifiée dans le ControlTemplate. La propriété IsItemsHost est définie sur true
sur le StackPanel, indiquant que les éléments générés doivent se trouver dans le panneau. Lorsque vous le spécifiez de cette façon, la ItemsPanel ne peut pas être remplacée par l’utilisateur du contrôle sans utiliser de ControlTemplate. Par conséquent, effectuez cette opération uniquement si vous savez que vous ne souhaitez pas que le panneau soit remplacé sans l’utilisation d’un modèle.
<Style TargetType="ListBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<Border CornerRadius="5" Background="{TemplateBinding ListBox.Background}">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"
IsItemsHost="True"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Vous pouvez également effectuer les opérations suivantes pour obtenir les mêmes résultats. Dans ce cas, le ItemsPresenter crée le panneau pour la disposition des éléments en fonction de ce qui est spécifié par le ItemsPanelTemplate.
<Style TargetType="{x:Type ListBox}">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border CornerRadius="5"
Background="{TemplateBinding ListBox.Background}">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<ItemsPresenter/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Remarques
Pour le ListBox, la ItemsPanelTemplate par défaut spécifie la VirtualizingStackPanel. Pour MenuItem, la valeur par défaut utilise WrapPanel. Pour StatusBar, la valeur par défaut utilise DockPanel.
Pour affecter la disposition des éléments d’un ItemsControl, vous utilisez cette propriété pour spécifier une ItemsPanelTemplate.
Le ItemsControl offre une grande flexibilité pour la personnalisation visuelle et fournit de nombreuses propriétés de style et de création de modèles. Vous utilisez la propriété ItemContainerStyle ou la propriété ItemContainerStyleSelector pour définir un style pour affecter l’apparence des éléments qui contiennent les éléments de données. Par exemple, pour ListBox, les conteneurs générés sont des contrôles ListBoxItem ; pour ComboBox, ils sont des contrôles ComboBoxItem. Si vous utilisez le regroupement sur votre contrôle, vous pouvez utiliser la propriété GroupStyle ou GroupStyleSelector. Pour spécifier la visualisation des objets de données, utilisez la ItemTemplate ou la propriété ItemTemplateSelector. Pour plus d’informations, consultez Vue d’ensemble de la création de modèles de données.
Informations sur les propriétés de dépendance
Champ d’identificateur | ItemsPanelProperty |
Propriétés de métadonnées définies sur true |
Aucun |