ItemsPanelTemplate Klasse

Definition

Gibt den Bereich an, der vom ItemsPresenter für das Layout der Elemente eines ItemsControl erstellt 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. Im folgenden Beispiel wird ein ListBox Style horizontales ListBoxObjekt erstellt.

<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 eine ControlTemplate horizontale ListBox , abgerundete Ecke 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 auf das StackPanelElement festgelegt true ist, das angibt, dass die generierten Elemente in den Bereich wechseln sollen. Wenn Sie dies angeben, kann der ItemsPanel Benutzer des Steuerelements nicht ersetzt werden, ohne ein ControlTemplateSteuerelement zu verwenden. Führen Sie daher nur dies aus, wenn Sie wissen, dass der Bereich nicht ersetzt werden soll, ohne eine Vorlage zu verwenden.

<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 Aktionen ausführen, um dieselben Ergebnisse zu erzielen. In diesem Fall erstellt der ItemsPresenter Bereich für das Layout der Elemente basierend auf dem, was von der 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 unterschiedlichen Formatierungs- und Vorlageneigenschaften auf dem ItemsControlAbschnitt " Daten templating" finden Sie unter "Übersicht über Daten templating".

Hinweise

Der Bereich ItemsPanelTemplate gibt den Bereich an, der für das Layout von Elementen verwendet wird. GroupStyle hat eine Panel Eigenschaft, die vom Typ ItemsPanelTemplateist. 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 ItemsPanel ein ItemsPanelTemplate Wert, der eine StackPanel. Für die ListBox, die Standard verwendet die VirtualizingStackPanel. Für MenuItem, die Standard verwendet WrapPanel. Für StatusBar, die Standard verwendet DockPanel.

Konstruktoren

ItemsPanelTemplate()

Initialisiert eine Instanz der ItemsPanelTemplate-Klasse.

ItemsPanelTemplate(FrameworkElementFactory)

Initialisiert eine Instanz der ItemsPanelTemplate-Klasse mit der angegebenen Vorlage.

Eigenschaften

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
HasContent

Ruft einen Wert ab, der angibt, ob diese Vorlage optimierten Inhalt aufweist.

(Geerbt von FrameworkTemplate)
IsSealed

Ruft einen Wert ab, der angibt, ob sich dieses Objekt in einem unveränderlichen Zustand befindet.

(Geerbt von FrameworkTemplate)
Resources

Ruft die Auflistung von Ressourcen ab, die innerhalb des Bereichs dieser Vorlage verwendet werden können, oder legt sie fest.

(Geerbt von FrameworkTemplate)
Template

Ruft einen Verweis auf das Objekt ab, das die XAML-Knoten für die Vorlage aufzeichnet oder wiedergibt, wenn die Vorlage von einem Writer definiert oder angewendet wird, oder legt diesen Verweis fest.

(Geerbt von FrameworkTemplate)
VisualTree

Ruft den Stammknoten der Vorlage ab oder legt diesen fest.

(Geerbt von FrameworkTemplate)

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FindName(String, FrameworkElement)

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

(Geerbt von FrameworkTemplate)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den 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 des aktuellen Object.

(Geerbt von Object)
RegisterName(String, Object)

Registriert ein neues Name/Objekt-Paar im aktuellen Namescope.

(Geerbt von FrameworkTemplate)
Seal()

Sperrt die Vorlage, damit diese nicht geändert werden kann.

(Geerbt von FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Gibt einen Wert zurück, mit dem angegeben wird, ob Serialisierungsprozesse den Wert der Resources-Eigenschaft für Instanzen dieser Klasse serialisieren sollen.

(Geerbt von FrameworkTemplate)
ShouldSerializeVisualTree()

Gibt einen Wert zurück, mit dem angegeben wird, 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 Name/Objekt-Zuordnung aus dem XAML-Namescope.

(Geerbt von FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Überprüft, ob das auf Vorlagen basierende übergeordnete Element ein ItemsPresenter-Objekt ist, das nicht NULL ist.

VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)

Explizite Schnittstellenimplementierungen

INameScope.FindName(String)

Gibt ein Objekt zurück, das über den bereitgestellten kennzeichnenden Namen verfügt.

(Geerbt von FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Fragt ab, ob eine angegebene Ambient-Eigenschaft im aktuellen Bereich verfügbar ist.

(Geerbt von FrameworkTemplate)

Gilt für