ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel Property

Definition

Ruft die Vorlage ab, die den Bereich definiert, der das Layout von Elementen steuert, oder legt diese fest.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; }
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate

Eigenschaftswert

Ein ItemsPanelTemplate, das den Bereich definiert, der für das Layout der Elemente verwendet werden soll.An ItemsPanelTemplate that defines the panel to use for the layout of the items. Der Standardwert für das ItemsControl ist ein ItemsPanelTemplate, das ein StackPanel angibt.The default value for the ItemsControl is an ItemsPanelTemplate that specifies a StackPanel.

Beispiele

Zum Erstellen einer horizontalen ListBox, können Sie eine Vorlage, der angibt, eine horizontalen erstellen StackPanel und legen Sie es als die ItemsPanel Eigenschaft.To create a horizontal ListBox, you can create a template that specifies a horizontal StackPanel and set it as the ItemsPanel property. Das folgende Beispiel zeigt eine ListBox Style erstellt eine horizontale 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>

Im folgenden Beispiel wird eine ControlTemplate zum Erstellen einer horizontalen ListBox mit abgerundeten Ecken.The following example uses a ControlTemplate to create a horizontal ListBox that has rounded corners. In diesem Beispiel statt der ItemsPanel Eigenschaft wie im vorherigen Beispiel, das den horizontalen StackPanel angegeben ist, in der ControlTemplate.In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. Die IsItemsHost -Eigenschaftensatz auf true auf die StackPanel, der angibt, die die generierten Elemente in den Bereich eingefügt werden sollen.The IsItemsHost property is set to true on the StackPanel, indicating that the generated items should go in the panel. Wenn Sie auf diese Weise angeben der ItemsPanel kann nicht vom Benutzer des Steuerelements ersetzt werden, ohne eine ControlTemplate.When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. Aus diesem Grund nur dann tun, wenn Sie wissen, dass Sie nicht möchten, dass den Bereich ohne Verwendung einer Vorlage ersetzt werden.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>

Alternativ können Sie Folgendes ein, um die gleichen Ergebnisse erzielen tun.Alternatively, you can do the following to achieve the same results. In diesem Fall die ItemsPresenter erstellt der Bereich, für das Layout der Elemente, die entsprechend dem angegeben wird, durch die 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>

Hinweise

Für die ListBox, der Standardwert ItemsPanelTemplate gibt an, die VirtualizingStackPanel.For the ListBox, the default ItemsPanelTemplate specifies the VirtualizingStackPanel. Für MenuItem, verwendet der WrapPanel.For MenuItem, the default uses WrapPanel. Für StatusBar, verwendet der DockPanel.For StatusBar, the default uses DockPanel.

Beeinflusst das Layout der Elemente in einer ItemsControl, verwenden Sie diese Eigenschaft an eine ItemsPanelTemplate.To affect the layout of the items in an ItemsControl, you use this property to specify a ItemsPanelTemplate.

Die ItemsControl bietet enorme Flexibilität bei der visuellen Anpassung und bietet zahlreiche Eigenschaften für Stile und Vorlagen.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Sie verwenden die ItemContainerStyle Eigenschaft oder das ItemContainerStyleSelector Eigenschaft, um ein Format, das die Darstellung der Elemente, die die Datenelemente enthalten festzulegen.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. Beispielsweise ListBox, werden die generierten Container ListBoxItem -Steuerelemente für ComboBox, sie sind ComboBoxItem Steuerelemente.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Wenn Sie Gruppierung für das Steuerelement verwenden, können Sie mithilfe der GroupStyle oder GroupStyleSelector Eigenschaft.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. Um die Visualisierung der Datenobjekte anzugeben, verwenden die ItemTemplate oder ItemTemplateSelector Eigenschaft.To specify the visualization of the data objects, use the ItemTemplate or the ItemTemplateSelector property. Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.For more information, see Data Templating Overview.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

Feld "ID"Identifier field ItemsPanelProperty
Legen Sie auf der Metadaten-Eigenschaften trueMetadata properties set to true NoneNone

Gilt für:

Siehe auch