ItemsControl.ItemsPanel Propriété

Définition

Obtient ou définit le modèle qui définit le panneau qui contrôle la disposition d'é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é

ItemsPanelTemplate

ItemsPanelTemplate qui définit le panneau à utiliser pour la disposition des éléments. La valeur par défaut pour ItemsControl est ItemsPanelTemplate qui spécifie StackPanel.

Attributs

Exemples

Pour créer un modèle horizontal ListBox, vous pouvez créer un modèle qui spécifie un modèle horizontal StackPanel et le définir comme propriété ItemsPanel . L’exemple suivant montre un ListBox Style élément qui crée un horizontal ListBox.

<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 objet pour créer un horizontal ListBox qui comporte des angles arrondis. Dans cet exemple, au lieu de définir la ItemsPanel propriété comme dans l’exemple précédent, l’horizontal StackPanel est spécifié dans le ControlTemplate. La IsItemsHost propriété est définie true sur l’élément 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, il ItemsPanel ne peut pas être remplacé 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 panneau crée 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 valeur par défaut ItemsPanelTemplate spécifie le 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 un ItemsPanelTemplate.

Le modè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 ItemContainerStyle propriété ou la ItemContainerStyleSelector propriété 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 ListBoxItem des contrôles ; pour ComboBox, ils sont ComboBoxItem des contrôles. Si vous utilisez le regroupement sur votre contrôle, vous pouvez utiliser la ou GroupStyleSelector la GroupStyle propriété. Pour spécifier la visualisation des objets de données, utilisez la propriété ou la ItemTemplate ItemTemplateSelector propriété. 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

S’applique à

Voir aussi