Bagikan melalui


ItemsPanelTemplate Kelas

Definisi

Menentukan panel yang ItemsPresenter dibuat untuk tata letak item dari ItemsControl.

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
Warisan

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. Perhatikan bahwa dalam contoh ini, alih-alih mengatur ItemsPanel properti seperti dalam contoh sebelumnya, horizontal StackPanel ditentukan dalam ControlTemplate. Perhatikan bahwa IsItemsHost properti 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>

Untuk contoh cara menggunakan properti gaya dan templat yang berbeda pada ItemsControl, lihat Gambaran Umum Templat Data.

Keterangan

ItemsPanelTemplate menentukan panel yang digunakan untuk tata letak item. GroupStyle memiliki Panel properti berjenis ItemsPanelTemplate. ItemsControl jenis memiliki ItemsPanel properti berjenis ItemsPanelTemplate.

Setiap ItemsControl jenis memiliki default ItemsPanelTemplate. ItemsControl Untuk kelas , nilai default ItemsPanel adalah ItemsPanelTemplate yang menentukan StackPanel. ListBoxUntuk , default menggunakan VirtualizingStackPanel. Untuk MenuItem, default menggunakan WrapPanel. Untuk StatusBar, default menggunakan DockPanel.

Konstruktor

Nama Deskripsi
ItemsPanelTemplate()

Menginisialisasi instans ItemsPanelTemplate kelas.

ItemsPanelTemplate(FrameworkElementFactory)

Menginisialisasi instans ItemsPanelTemplate kelas dengan templat yang ditentukan.

Properti

Nama Deskripsi
Dispatcher

Dispatcher Mendapatkan ini DispatcherObject dikaitkan dengan.

(Diperoleh dari DispatcherObject)
HasContent

Mendapatkan nilai yang menunjukkan apakah templat ini memiliki konten yang dioptimalkan.

(Diperoleh dari FrameworkTemplate)
IsSealed

Mendapatkan nilai yang menunjukkan apakah objek ini dalam status tidak dapat diubah sehingga tidak dapat diubah.

(Diperoleh dari FrameworkTemplate)
Resources

Mendapatkan atau mengatur kumpulan sumber daya yang dapat digunakan dalam cakupan templat ini.

(Diperoleh dari FrameworkTemplate)
Template

Mendapatkan atau mengatur referensi ke objek yang merekam atau memutar simpul XAML untuk templat saat templat ditentukan atau diterapkan oleh penulis.

(Diperoleh dari FrameworkTemplate)
VisualTree

Mendapatkan atau mengatur simpul akar templat.

(Diperoleh dari FrameworkTemplate)

Metode

Nama Deskripsi
CheckAccess()

Menentukan apakah utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
FindName(String, FrameworkElement)

Menemukan elemen yang terkait dengan nama yang ditentukan dalam templat ini.

(Diperoleh dari FrameworkTemplate)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
LoadContent()

Memuat konten templat sebagai instans objek dan mengembalikan elemen akar konten.

(Diperoleh dari FrameworkTemplate)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
RegisterName(String, Object)

Mendaftarkan pasangan nama/objek baru ke dalam cakupan nama saat ini.

(Diperoleh dari FrameworkTemplate)
Seal()

Mengunci templat sehingga tidak dapat diubah.

(Diperoleh dari FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Mengembalikan nilai yang menunjukkan apakah proses serialisasi harus menserialisasikan nilai Resources properti pada instans kelas ini.

(Diperoleh dari FrameworkTemplate)
ShouldSerializeVisualTree()

Mengembalikan nilai yang menunjukkan apakah proses serialisasi harus menserialisasikan nilai VisualTree properti pada instans kelas ini.

(Diperoleh dari FrameworkTemplate)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
UnregisterName(String)

Menghapus pemetaan nama/objek dari namescope XAML.

(Diperoleh dari FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Memeriksa apakah induk yang di-templat adalah objek non-null ItemsPresenter .

VerifyAccess()

Memberlakukan bahwa utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
INameScope.FindName(String)

Mengembalikan objek yang memiliki nama pengidentifikasi yang disediakan.

(Diperoleh dari FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Mengkueri apakah properti sekitar tertentu tersedia dalam cakupan saat ini.

(Diperoleh dari FrameworkTemplate)

Berlaku untuk