ItemsPanelTemplate Klasse

Definition

Gibt den Bereich an, der vom ItemsPresenter für das Layout der Elemente eines ItemsControl erstellt wird.Specifies the panel that the ItemsPresenter creates for the layout of the items of an ItemsControl.

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 eines horizontalen ListBoxkönnen Sie eine Vorlage erstellen, die eine horizontale StackPanel angibt ItemsPanel und Sie als-Eigenschaft festlegt.To create a horizontal ListBox, you can create a template that specifies a horizontal StackPanel and set it as the ItemsPanel property. Das folgende Beispiel zeigt ein ListBox Style , das eine horizontale ListBoxerstellt.The following example shows a ListBox Style that creates a horizontal ListBox.

<Style TargetType="ListBox">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"
                    VerticalAlignment="Center"
                    HorizontalAlignment="Center"/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
</Style>

Im folgenden Beispiel ControlTemplate wird mithilfe von ein horizontales ListBox erstellt, das abgerundete Ecken aufweist.The following example uses a ControlTemplate to create a horizontal ListBox that has rounded corners. Beachten Sie, dass in diesem Beispiel anstelle der fest ItemsPanel legung der-Eigenschaft im vorherigen Beispiel die StackPanel horizontale in der ControlTemplateangegeben wird.Note that in this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. Beachten Sie, IsItemsHost dass die-Eigenschaft true auf StackPanelfestgelegt ist, was angibt, dass die generierten Elemente im Bereich angezeigt werden sollen.Note that the IsItemsHost property is set to true on the StackPanel, indicating that the generated items should go in the panel. Wenn Sie diese auf diese Weise angeben, ItemsPanel kann der nicht durch den Benutzer des-Steuer Elements ersetzt werden ControlTemplate, ohne zu verwenden.When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. Daher sollten Sie dies nur tun, wenn Sie wissen, dass das Panel nicht ohne die Verwendung einer Vorlage ersetzt werden soll.Therefore, only do this if you know you wouldn't want the panel to be replaced without the use of a template.

<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 dazu können Sie die folgenden Aktionen ausführen, um die gleichen Ergebnisse zu erzielen.Alternatively, you can do the following to achieve the same results. In diesem Fall ItemsPresenter erstellt das Panel für das Layout der Elemente basierend auf dem, was ItemsPanelTemplatedurch angegeben wird.In this case, the ItemsPresenter creates the panel for the layout of the items based on what is specified by the 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 Vorlagen Eigenschaften in ItemsControlfinden Sie unter Übersicht über DatenVorlagen.For an example of how to use the different styling and templating properties on the ItemsControl, see Data Templating Overview.

Hinweise

Der ItemsPanelTemplate gibt den Bereich an, der für das Layout von Elementen verwendet wird.The ItemsPanelTemplate specifies the panel that is used for the layout of items. GroupStyleverfügt über Panel eine Eigenschaft vom Typ. ItemsPanelTemplateGroupStyle has a Panel property that is of type ItemsPanelTemplate. ItemsControlTypen verfügen über ItemsPanel eine Eigenschaft vom Typ. ItemsPanelTemplateItemsControl types have an ItemsPanel property that is of type ItemsPanelTemplate.

Jeder ItemsControl Typ verfügt über einen ItemsPanelTemplateStandardwert.Each ItemsControl type has a default ItemsPanelTemplate. Der Standard ItemsControl ItemsPanel Wert für die-Klasse ist ein ItemsPanelTemplate , der einen StackPanelangibt.For the ItemsControl class, the default ItemsPanel value is an ItemsPanelTemplate that specifies a StackPanel. Für wird der Standardwert VirtualizingStackPanelverwendet. ListBoxFor the ListBox, the default uses the VirtualizingStackPanel. Für MenuItem verwendetWrapPaneldie Standard-.For MenuItem, the default uses WrapPanel. Für StatusBar verwendetDockPaneldie Standard-.For StatusBar, the default uses DockPanel.

Konstruktoren

ItemsPanelTemplate()

Initialisiert eine Instanz der ItemsPanelTemplate-Klasse.Initializes an instance of the ItemsPanelTemplate class.

ItemsPanelTemplate(FrameworkElementFactory)

Initialisiert eine Instanz der ItemsPanelTemplate-Klasse mit der angegebenen Vorlage.Initializes an instance of the ItemsPanelTemplate class with the specified template.

Eigenschaften

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.Gets the Dispatcher this DispatcherObject is associated with.

(Geerbt von DispatcherObject)
HasContent

Ruft einen Wert ab, der angibt, ob diese Vorlage optimierten Inhalt aufweist.Gets a value that indicates whether this template has optimized content.

(Geerbt von FrameworkTemplate)
IsSealed

Ruft einen Wert ab, der angibt, ob sich dieses Objekt in einem unveränderlichen Zustand befindet.Gets a value that indicates whether this object is in an immutable state so it cannot be changed.

(Geerbt von FrameworkTemplate)
Resources

Ruft die Auflistung von Ressourcen ab, die innerhalb des Bereichs dieser Vorlage verwendet werden können, oder legt sie fest.Gets or sets the collection of resources that can be used within the scope of this template.

(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.Gets or sets a reference to the object that records or plays the XAML nodes for the template when the template is defined or applied by a writer.

(Geerbt von FrameworkTemplate)
VisualTree

Ruft den Stammknoten der Vorlage ab oder legt diesen fest.Gets or sets the root node of the template.

(Geerbt von FrameworkTemplate)

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Determines whether the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)
Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
FindName(String, FrameworkElement)

Sucht das Element, das dem angegebenen Namen zugeordnet und in dieser Vorlage definiert ist.Finds the element associated with the specified name defined within this template.

(Geerbt von FrameworkTemplate)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
LoadContent()

Lädt den Inhalt der Vorlage als Instanz eines Objekts und gibt das Stammelement des Inhalts zurück.Loads the content of the template as an instance of an object and returns the root element of the content.

(Geerbt von FrameworkTemplate)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
RegisterName(String, Object)

Registriert ein neues Name/Objekt-Paar im aktuellen Namescope.Registers a new name/object pair into the current name scope.

(Geerbt von FrameworkTemplate)
Seal()

Sperrt die Vorlage, damit diese nicht geändert werden kann.Locks the template so it cannot be changed.

(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.Returns a value that indicates whether serialization processes should serialize the value of the Resources property on instances of this class.

(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.Returns a value that indicates whether serialization processes should serialize the value of the VisualTree property on instances of this class.

(Geerbt von FrameworkTemplate)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
UnregisterName(String)

Entfernt eine Name/Objekt-Zuordnung aus dem XAML-Namescope.Removes a name/object mapping from the XAML namescope.

(Geerbt von FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Überprüft, ob das auf Vorlagen basierende übergeordnete Element ein ItemsPresenter-Objekt ist, das nicht NULL ist.Checks that the templated parent is a non-null ItemsPresenter object.

VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Enforces that the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)

Explizite Schnittstellenimplementierungen

INameScope.FindName(String)

Gibt ein Objekt zurück, das über den bereitgestellten kennzeichnenden Namen verfügt.Returns an object that has the provided identifying name.

(Geerbt von FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Fragt ab, ob eine angegebene Ambient-Eigenschaft im aktuellen Bereich verfügbar ist.Queries whether a specified ambient property is available in the current scope.

(Geerbt von FrameworkTemplate)
ISealable.CanSeal (Geerbt von FrameworkTemplate)
ISealable.IsSealed (Geerbt von FrameworkTemplate)
ISealable.Seal() (Geerbt von FrameworkTemplate)

Gilt für:

Siehe auch