Bagikan melalui


ItemsControl.ItemsPanel Properti

Definisi

Mendapatkan atau mengatur templat yang menentukan panel yang mengontrol tata letak item.

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

Nilai Properti

ItemsPanelTemplate yang menentukan panel yang akan digunakan untuk tata letak item. Nilai default untuk ItemsControl adalah ItemsPanelTemplate yang menentukan StackPanel.

Atribut

Contoh

Untuk membuat ListBoxhorizontal , Anda bisa membuat templat yang menentukan StackPanel horizontal dan mengaturnya sebagai properti ItemsPanel. Contoh berikut menunjukkan ListBoxStyle yang membuat ListBoxhorizontal .

<Style TargetType="ListBox">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"
                    VerticalAlignment="Center"
                    HorizontalAlignment="Center"/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
</Style>

Contoh berikut menggunakan ControlTemplate untuk membuat ListBox horizontal yang memiliki sudut bulat. Dalam contoh ini, alih-alih mengatur properti ItemsPanel seperti dalam contoh sebelumnya, StackPanel horizontal ditentukan dalam ControlTemplate. Properti IsItemsHost diatur ke true pada StackPanel, menunjukkan bahwa item yang dihasilkan harus masuk ke panel. Ketika Anda menentukannya dengan cara ini, ItemsPanel tidak dapat digantikan oleh pengguna kontrol tanpa menggunakan ControlTemplate. Oleh karena itu, hanya lakukan ini jika Anda tahu Anda tidak ingin panel diganti tanpa menggunakan templat.

<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>

Atau, Anda dapat melakukan hal berikut untuk mencapai hasil yang sama. Dalam hal ini, ItemsPresenter membuat panel untuk tata letak item berdasarkan apa yang ditentukan oleh 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>

Keterangan

Untuk ListBox, ItemsPanelTemplate default menentukan VirtualizingStackPanel. Untuk MenuItem, default menggunakan WrapPanel. Untuk StatusBar, default menggunakan DockPanel.

Untuk memengaruhi tata letak item dalam ItemsControl, Anda menggunakan properti ini untuk menentukan ItemsPanelTemplate.

ItemsControl memberikan fleksibilitas yang besar untuk kustomisasi visual dan menyediakan banyak properti gaya dan templat. Anda menggunakan properti ItemContainerStyle atau properti ItemContainerStyleSelector untuk mengatur gaya agar memengaruhi tampilan elemen yang berisi item data. Misalnya, untuk ListBox, kontainer yang dihasilkan adalah kontrol ListBoxItem; untuk ComboBox, mereka adalah kontrol ComboBoxItem. Jika Anda menggunakan pengelompokan pada kontrol, Anda dapat menggunakan properti GroupStyle atau GroupStyleSelector. Untuk menentukan visualisasi objek data, gunakan properti ItemTemplate atau ItemTemplateSelector. Untuk informasi selengkapnya, lihat Gambaran Umum Templat Data .

Informasi Properti Dependensi

Bidang pengidentifikasi ItemsPanelProperty
Properti metadata diatur ke true Tidak

Berlaku untuk