ItemsPanelTemplate Klasse

Definition

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

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

Um eine horizontale ListBoxzu erstellen, können Sie eine Vorlage erstellen, die eine horizontale StackPanel angibt, und sie als ItemsPanel-Eigenschaft festlegen. Das folgende Beispiel zeigt eine ListBoxStyle, die 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 verwendet, um eine horizontale ListBox mit abgerundeten Ecken zu erstellen. Beachten Sie, dass in diesem Beispiel anstelle der ItemsPanel-Eigenschaft wie im vorherigen Beispiel die horizontale StackPanel innerhalb der ControlTemplateangegeben wird. Beachten Sie, dass die IsItemsHost-Eigenschaft auf true für die StackPanelfestgelegt ist, die angibt, dass die generierten Elemente in das Panel verschoben werden sollen. Wenn Sie es auf diese Weise angeben, kann die ItemsPanel nicht durch den Benutzer des Steuerelements ersetzt werden, ohne eine ControlTemplatezu 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 die ItemsPresenter den Bereich für das Layout der Elemente basierend auf dem, was durch die ItemsPanelTemplateangegeben wird.

<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 für die ItemsControlfinden Sie unter Daten templating Overview.

Hinweise

Die ItemsPanelTemplate gibt den Bereich an, der für das Layout von Elementen verwendet wird. GroupStyle verfügt über eine Panel Eigenschaft vom Typ ItemsPanelTemplate. ItemsControl Typen weisen eine ItemsPanel Eigenschaft auf, die vom Typ ItemsPanelTemplateist.

Jeder ItemsControl Typ verfügt über einen Standard-ItemsPanelTemplate. Für die ItemsControl Klasse ist der Standardwert ItemsPanel ein ItemsPanelTemplate, der eine StackPanelangibt. Für die ListBoxverwendet der Standardwert die VirtualizingStackPanel. Für MenuItemverwendet die Standardeinstellung WrapPanel. Für StatusBarverwendet die Standardeinstellung DockPanel.

Konstruktoren

ItemsPanelTemplate()

Initialisiert eine Instanz der ItemsPanelTemplate Klasse.

ItemsPanelTemplate(FrameworkElementFactory)

Initialisiert eine Instanz der ItemsPanelTemplate Klasse mit der angegebenen Vorlage.

Eigenschaften

Dispatcher

Ruft die Dispatcher dieser 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

CheckAccess()

Bestimmt, ob der aufrufende Thread Zugriff auf diese DispatcherObjecthat.

(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 für Instanzen dieser Klasse serialisieren sollen.

(Geerbt von FrameworkTemplate)
ShouldSerializeVisualTree()

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der VisualTree -Eigenschaft für 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-ItemsPresenter-Objekt ist.

VerifyAccess()

Erzwingt, dass der aufrufende Thread Zugriff auf diese DispatcherObjecthat.

(Geerbt von DispatcherObject)

Explizite Schnittstellenimplementierungen

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: