Bagikan melalui


ItemsPanelTemplate Kelas

Definisi

Menentukan panel yang dibuat ItemsPresenter untuk tata letak item 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 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. Perhatikan bahwa dalam contoh ini, alih-alih mengatur properti ItemsPanel seperti dalam contoh sebelumnya, StackPanel horizontal ditentukan dalam ControlTemplate. Perhatikan bahwa 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>

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 properti Panel yang berjenis ItemsPanelTemplate. jenis ItemsControl memiliki properti ItemsPanel yang berjenis ItemsPanelTemplate.

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

Konstruktor

ItemsPanelTemplate()

Menginisialisasi instans kelas ItemsPanelTemplate.

ItemsPanelTemplate(FrameworkElementFactory)

Menginisialisasi instans kelas ItemsPanelTemplate dengan templat yang ditentukan.

Properti

Dispatcher

Mendapatkan DispatcherDispatcherObject ini dikaitkan.

(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

CheckAccess()

Menentukan apakah utas panggilan memiliki akses ke DispatcherObjectini.

(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 membuat serialisasi nilai properti Resources pada instans kelas ini.

(Diperoleh dari FrameworkTemplate)
ShouldSerializeVisualTree()

Mengembalikan nilai yang menunjukkan apakah proses serialisasi harus membuat serialisasi nilai properti VisualTree 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 ItemsPresenter non-null.

VerifyAccess()

Memberlakukan bahwa utas panggilan memiliki akses ke DispatcherObjectini .

(Diperoleh dari DispatcherObject)

Implementasi Antarmuka Eksplisit

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