Freigeben über


ItemsPanelTemplate Klasse

Definition

Gibt den Bereich an, der ItemsPresenter für das Layout der Elemente eines Elements ItemsControlerstellt wird.

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

Beispiele

Zum Erstellen einer horizontalen ListBoxVorlage können Sie eine Vorlage erstellen, die eine horizontale StackPanel angibt und als ItemsPanel Eigenschaft festlegen. Das folgende Beispiel zeigt ein ListBoxStyle Objekt, das 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 horizontales ListBox Element mit abgerundeten Ecken erstellt. Beachten Sie, dass in diesem Beispiel anstelle der Einstellung der ItemsPanel Eigenschaft wie im vorherigen Beispiel die horizontale StackPanel Eigenschaft innerhalb der ControlTemplate. Beachten Sie, dass die IsItemsHost Eigenschaft für das StackPanelElement festgelegt true ist, das angibt, dass die generierten Elemente in das Panel verschoben werden sollen. Wenn Sie es auf diese Weise angeben, kann dies ItemsPanel nicht durch den Benutzer des Steuerelements ersetzt werden, ohne ein ControlTemplateSteuerelement zu verwenden. Tun Sie dies daher nur, wenn Sie wissen, dass das Panel nicht ersetzt werden soll, ohne dass eine Vorlage verwendet wird.

<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 das ItemsPresenter Panel für das Layout der Elemente basierend auf dem, was durch die 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>

Ein Beispiel für die Verwendung der verschiedenen Formatierungs- und Vorlageneigenschaften in der ItemsControlDatei finden Sie unter Data Templating Overview.

Hinweise

Das ItemsPanelTemplate Specifies the panel that is used for the layout of items. GroupStyle hat eine Panel Eigenschaft vom Typ ItemsPanelTemplate. ItemsControl Typen weisen eine ItemsPanel Eigenschaft auf, die vom Typ ItemsPanelTemplateist.

Jeder ItemsControl Typ weist einen Standardwert ItemsPanelTemplateauf. Für die ItemsControl Klasse ist der Standardwert ein ItemsPanelTemplate WertItemsPanel, der eine StackPanel. Für den ListBox, der Standardwert verwendet die VirtualizingStackPanel. For MenuItem, the default uses WrapPanel. For StatusBar, the default uses DockPanel.

Konstruktoren

Name Beschreibung
ItemsPanelTemplate()

Initialisiert eine Instanz der ItemsPanelTemplate Klasse.

ItemsPanelTemplate(FrameworkElementFactory)

Initialisiert eine Instanz der ItemsPanelTemplate Klasse mit der angegebenen Vorlage.

Eigenschaften

Name Beschreibung
Dispatcher

Ruft dies Dispatcher ab, dem dies DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
HasContent

Ruft einen Wert ab, der angibt, ob diese Vorlage inhalte optimiert hat.

(Geerbt von FrameworkTemplate)
IsSealed

Ruft einen Wert ab, der angibt, ob sich dieses Objekt in einem unveränderlichen Zustand befindet, sodass es nicht geändert werden kann.

(Geerbt von FrameworkTemplate)
Resources

Dient zum Abrufen oder Festlegen der Auflistung von Ressourcen, die innerhalb des Bereichs dieser Vorlage verwendet werden können.

(Geerbt von FrameworkTemplate)
Template

Dient zum Abrufen oder Festlegen eines Verweises auf das Objekt, das die XAML-Knoten für die Vorlage erfasst oder wiedergibt, wenn die Vorlage von einem Writer definiert oder angewendet wird.

(Geerbt von FrameworkTemplate)
VisualTree

Dient zum Abrufen oder Festlegen des Stammknotens der Vorlage.

(Geerbt von FrameworkTemplate)

Methoden

Name Beschreibung
CheckAccess()

Bestimmt, ob der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
FindName(String, FrameworkElement)

Sucht das Element, das dem angegebenen Namen zugeordnet ist, der in dieser Vorlage definiert ist.

(Geerbt von FrameworkTemplate)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
LoadContent()

Lädt den Inhalt der Vorlage als Instanz eines Objekts und gibt das Stammelement des Inhalts zurück.

(Geerbt von FrameworkTemplate)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
RegisterName(String, Object)

Registriert ein neues Namens-/Objektpaar im aktuellen Namensbereich.

(Geerbt von FrameworkTemplate)
Seal()

Sperrt die Vorlage, sodass sie nicht geändert werden kann.

(Geerbt von FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der Resources Eigenschaft auf Instanzen dieser Klasse serialisieren sollen.

(Geerbt von FrameworkTemplate)
ShouldSerializeVisualTree()

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der VisualTree Eigenschaft auf Instanzen dieser Klasse serialisieren sollen.

(Geerbt von FrameworkTemplate)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
UnregisterName(String)

Entfernt eine Namens-/Objektzuordnung aus dem XAML-NameScope.

(Geerbt von FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Überprüft, ob das übergeordnete Element der Vorlage ein Nicht-NULL-Objekt ItemsPresenter ist.

VerifyAccess()

Erzwingt, dass der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)

Explizite Schnittstellenimplementierungen

Name Beschreibung
INameScope.FindName(String)

Gibt ein Objekt zurück, das den angegebenen Identifikationsnamen aufweist.

(Geerbt von FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Fragt ab, ob eine angegebene Umgebungseigenschaft im aktuellen Bereich verfügbar ist.

(Geerbt von FrameworkTemplate)

Gilt für: