Share via


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

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 horizontale ListBoxzu erstellen, können Sie eine Vorlage erstellen, die eine horizontale StackPanel angibt, und sie als ItemsPanel Eigenschaft festlegen. Das folgende Beispiel zeigt eine ListBoxStyle , die eine horizontale ListBoxerstellt.

<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 ein ControlTemplate verwendet, um eine Horizontale ListBox mit abgerundeten Ecken zu erstellen. In diesem Beispiel wird anstelle der ItemsPanel -Eigenschaft wie im vorherigen Beispiel die horizontale StackPanel in der ControlTemplateangegeben. Die IsItemsHost -Eigenschaft ist auf true auf StackPanelfestgelegt, was angibt, dass die generierten Elemente im Bereich angezeigt werden sollen. Wenn Sie es auf diese Weise angeben, kann der ItemsPanel nicht durch den Benutzer des Steuerelements ersetzt werden, ohne ein zu ControlTemplateverwenden. Tun Sie dies daher nur, wenn Sie wissen, dass der Bereich nicht ohne Die Verwendung einer Vorlage ersetzt werden soll.

<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 die folgenden Schritte ausführen, um die gleichen Ergebnisse zu erzielen. In diesem Fall erstellt der ItemsPresenter -Bereich für das Layout der Elemente basierend auf dem, was durch angegeben ItemsPanelTemplatewird.

<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 gibt ListBoxder Standardwert ItemsPanelTemplate den VirtualizingStackPanelan. Für MenuItemverwendet WrapPanelder Standardwert . Für StatusBarverwendet DockPanelder Standardwert .

Um das Layout der Elemente in einem ItemsControlzu beeinflussen, verwenden Sie diese Eigenschaft, um ein ItemsPanelTemplateanzugeben.

Bietet ItemsControl eine große Flexibilität für die visuelle Anpassung und bietet viele Stil- und Vorlageneigenschaften. Sie verwenden die ItemContainerStyle -Eigenschaft oder - ItemContainerStyleSelector Eigenschaft, um eine Formatvorlage festzulegen, die sich auf die Darstellung der Elemente auswirkt, die die Datenelemente enthalten. Beispielsweise ListBoxsind ListBoxItem die generierten Container Steuerelemente, für ComboBoxsind ComboBoxItem sie Steuerelemente. Wenn Sie die Gruppierung für Ihr Steuerelement verwenden, können Sie die GroupStyle -Eigenschaft oder GroupStyleSelector verwenden. Verwenden Sie die -Eigenschaft oder, um die ItemTemplate Visualisierung der ItemTemplateSelector Datenobjekte anzugeben. Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld ItemsPanelProperty
Metadateneigenschaften auf true festgelegt Keine

Gilt für: