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.Gets or sets the template that defines the panel that controls the layout of items.

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.An ItemsPanelTemplate that defines the panel to use for the layout of the items. La valeur par défaut pour ItemsControl est ItemsPanelTemplate qui spécifie StackPanel.The default value for the ItemsControl is an ItemsPanelTemplate that specifies a StackPanel.

Attributs

Exemples

Pour créer un horizontal ListBox , vous pouvez créer un modèle qui spécifie un horizontal StackPanel et le définir comme ItemsPanel propriété.To create a horizontal ListBox, you can create a template that specifies a horizontal StackPanel and set it as the ItemsPanel property. L’exemple suivant montre un ListBox Style qui crée un horizontal ListBox .The following example shows a ListBox Style that creates a 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 pour créer un horizontal ListBox qui a des angles arrondis.The following example uses a ControlTemplate to create a horizontal ListBox that has rounded corners. 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 .In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. La IsItemsHost propriété a la valeur true sur StackPanel , ce qui indique que les éléments générés doivent être placés dans le panneau.The IsItemsHost property is set to true on the StackPanel, indicating that the generated items should go in the panel. Lorsque vous le spécifiez de cette manière, l ItemsPanel 'ne peut pas être remplacé par l’utilisateur du contrôle sans utiliser de ControlTemplate .When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. Par conséquent, ne le faites que si vous savez que vous ne souhaitez pas que le panneau soit remplacé sans utiliser de modèle.Therefore, only do this if you know you would not want the panel to be replaced without the use of a template.

<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.Alternatively, you can do the following to achieve the same results. Dans ce cas, le ItemsPresenter crée le panneau pour la disposition des éléments en fonction de ce qui est spécifié par ItemsPanelTemplate .In this case, the ItemsPresenter creates the panel for the layout of the items based on what is specified by the 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 ListBox , la valeur par défaut ItemsPanelTemplate spécifie VirtualizingStackPanel .For the ListBox, the default ItemsPanelTemplate specifies the VirtualizingStackPanel. Pour MenuItem , la valeur par défaut utilise WrapPanel .For MenuItem, the default uses WrapPanel. Pour StatusBar , la valeur par défaut utilise DockPanel .For StatusBar, the default uses DockPanel.

Pour affecter la disposition des éléments dans un ItemsControl , vous utilisez cette propriété pour spécifier un ItemsPanelTemplate .To affect the layout of the items in an ItemsControl, you use this property to specify a 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.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Vous utilisez la ItemContainerStyle propriété ou la ItemContainerStyleSelector propriété pour définir un style qui affecte l’apparence des éléments qui contiennent les éléments de données.You use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Par exemple, pour ListBox , les conteneurs générés sont des ListBoxItem contrôles ; pour ComboBox , il s’agit de ComboBoxItem contrôles.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Si vous utilisez le regroupement sur votre contrôle, vous pouvez utiliser la GroupStyle propriété ou GroupStyleSelector .If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. Pour spécifier la visualisation des objets de données, utilisez la ItemTemplate propriété ou ItemTemplateSelector .To specify the visualization of the data objects, use the ItemTemplate or the ItemTemplateSelector property. Pour plus d’informations, consultez vue d’ensemble des modèles de données.For more information, see Data Templating Overview.

Informations sur les propriétés de dépendanceDependency Property Information

Champ d’identificateurIdentifier field ItemsPanelProperty
Propriétés de métadonnées définies sur trueMetadata properties set to true NoneNone

S’applique à

Voir aussi