Freigeben über


ItemsControl.ItemsPanel Eigenschaft

Definition

Dient zum Abrufen oder Festlegen der Vorlage, die den Bereich definiert, der das Layout von Elementen 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

Ein ItemsPanelTemplate, der das panel definiert, das für das Layout der Elemente verwendet werden soll. Der Standardwert für die ItemsControl ist ein ItemsPanelTemplate, der eine StackPanelangibt.

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 die horizontale StackPanel in der ControlTemplateangegeben, anstatt die ItemsPanel-Eigenschaft wie im vorherigen Beispiel festzulegen. Die IsItemsHost-Eigenschaft wird auf true für die StackPanelfestgelegt, die angibt, dass die generierten Elemente in das Panel verschoben werden sollen. Wenn Sie es auf diese Weise angeben, kann die ItemsPanel nicht durch den Benutzer des Steuerelements ersetzt werden, ohne eine ControlTemplatezu verwenden. Tun Sie dies daher nur, wenn Sie wissen, dass das Panel nicht ersetzt werden soll, ohne eine Vorlage zu verwenden.

<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 dieselben Ergebnisse zu erzielen. In diesem Fall erstellt die ItemsPresenter den Bereich für das Layout der Elemente basierend auf dem, was durch die 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 die ListBoxgibt der Standard-ItemsPanelTemplate den VirtualizingStackPanelan. Für MenuItemverwendet die Standardeinstellung WrapPanel. Für StatusBarverwendet die Standardeinstellung DockPanel.

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

Die ItemsControl bietet große Flexibilität für die visuelle Anpassung und bietet viele Formatierungs- und Vorlageneigenschaften. Sie verwenden die ItemContainerStyle-Eigenschaft oder die ItemContainerStyleSelector-Eigenschaft, um eine Formatvorlage festzulegen, um die Darstellung der Elemente, die die Datenelemente enthalten, zu beeinflussen. Beispielsweise werden für ListBoxdie generierten Container ListBoxItem Steuerelemente; für ComboBoxsind sie ComboBoxItem Steuerelemente. Wenn Sie die Gruppierung für Ihr Steuerelement verwenden, können Sie die eigenschaft GroupStyle oder GroupStyleSelector verwenden. Um die Visualisierung der Datenobjekte anzugeben, verwenden Sie die ItemTemplate oder die eigenschaft ItemTemplateSelector. Weitere Informationen finden Sie unter Daten templating Overview.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld ItemsPanelProperty
Auf true festgelegte Metadateneigenschaften Nichts

Gilt für: