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 horizontal ListBox, Anda bisa membuat templat yang menentukan horizontal StackPanel dan mengaturnya sebagai ItemsPanel properti . Contoh berikut menunjukkan ListBoxStyle yang membuat horizontal ListBox.

<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 horizontal ListBox yang memiliki sudut bulat. Dalam contoh ini, alih-alih mengatur ItemsPanel properti seperti dalam contoh sebelumnya, horizontal StackPanel 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

ListBoxUntuk , default ItemsPanelTemplate 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.

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

Informasi Properti Dependensi

Bidang pengidentifikasi ItemsPanelProperty
Properti metadata diatur ke true Tidak ada

Berlaku untuk