ItemsControl.ItemsPanel Eigenschaft

Definition

Ruft die Vorlage ab (bzw. legt diese fest), mit der der Bereich definiert wird, der das Layout der Elemente steuert.

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

Eigenschaftswert

ItemsPanelTemplate

Eine ItemsPanelTemplate, die den Bereich für das Layout der Elemente definiert. Der Standardwert für das ItemsControl ist eine ItemsPanelTemplate, die ein StackPanel angibt.

Attribute

Beispiele

Um eine ListBoxhorizontale Vorlage zu erstellen, können Sie eine Vorlage erstellen, die eine horizontale StackPanel Vorlage angibt und sie als ItemsPanel Eigenschaft festlegen. Im folgenden Beispiel wird ein ListBox Style horizontales ListBoxObjekt erstellt.

<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 horizontale ListBox , gerundete Ecke erstellt. In diesem Beispiel wird anstelle des Festlegens der Eigenschaft wie im vorherigen Beispiel die ItemsPanel horizontale StackPanel Eigenschaft innerhalb des ControlTemplateBereichs angegeben. Die IsItemsHost Eigenschaft wird true auf den Wert festgelegt, der StackPanelangibt, dass die generierten Elemente im Bereich wechseln sollen. Wenn Sie diese Methode angeben, kann dies ItemsPanel nicht durch den Benutzer des Steuerelements ersetzt werden, ohne eine ControlTemplatezu verwenden. Führen Sie daher nur dies aus, wenn Sie wissen, dass das Panel nicht ersetzt werden soll, ohne dass eine Vorlage verwendet wird.

<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 ausführen, um dieselben Ergebnisse zu erzielen. In diesem Fall erstellt der ItemsPresenter Bereich für das Layout der Elemente basierend auf dem, was von dem ItemsPanelTemplateangegeben wird.

<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 das ListBox, der Standard ItemsPanelTemplate gibt die VirtualizingStackPanel. Für MenuItem, die Standard verwendet WrapPanel. Für StatusBar, die Standard verwendet DockPanel.

Um das Layout der Elemente in einem ItemsControlElement zu beeinflussen, verwenden Sie diese Eigenschaft, um eine ItemsPanelTemplate.

Dies ItemsControl bietet eine große Flexibilität für visuelle Anpassungen und bietet viele Formatierungs- und Templatingeigenschaften. Sie verwenden die ItemContainerStyle Eigenschaft oder die ItemContainerStyleSelector Eigenschaft, um eine Formatvorlage festzulegen, um die Darstellung der Elemente zu beeinflussen, die die Datenelemente enthalten. Für beispielsweise sind die generierten Container Steuerelemente; für ListBoxComboBox, sie sind ListBoxItem ComboBoxItem Steuerelemente. Wenn Sie die Gruppierung auf Ihrem Steuerelement verwenden, können Sie die Eigenschaft oder die GroupStyle GroupStyleSelector Eigenschaft verwenden. Verwenden Sie zum Angeben der Visualisierung der Datenobjekte die ItemTemplate Eigenschaft oder die ItemTemplateSelector Eigenschaft. Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld ItemsPanelProperty
Metadateneigenschaften auf true festgelegt Keine

Gilt für:

Siehe auch