ItemsPanelTemplate Clase

Definición

Especifica el panel que ItemsPresenter crea para el diseño de los elementos de ItemsControl.

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

Ejemplos

Para crear un objeto horizontal ListBox, puede crear una plantilla que especifique un horizontal StackPanel y establézcalo como la ItemsPanel propiedad . En el ejemplo siguiente se muestra un ListBox Style objeto que crea un objeto horizontal ListBox.

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

En el ejemplo siguiente se usa un ControlTemplate para crear una horizontal ListBox que tenga esquinas redondeadas. Tenga en cuenta que en este ejemplo, en lugar de establecer la ItemsPanel propiedad como en el ejemplo anterior, el horizontal StackPanel se especifica dentro de ControlTemplate. Tenga en cuenta que la IsItemsHost propiedad se establece true en en , StackPanello que indica que los elementos generados deben ir en el panel. Cuando se especifica de esta manera, ItemsPanel no se puede reemplazar por el usuario del control sin usar .ControlTemplate Por lo tanto, solo haga esto si sabe que no desea que el panel se reemplace sin el uso de una plantilla.

<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>

Como alternativa, puede hacer lo siguiente para lograr los mismos resultados. En este caso, crea ItemsPresenter el panel para el diseño de los elementos en función de lo especificado por .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>

Para obtener un ejemplo de cómo usar las diferentes propiedades de estilo y plantillas en ItemsControl, consulte Información general sobre plantillas de datos.

Comentarios

ItemsPanelTemplate especifica el panel que se usa para el diseño de los elementos. GroupStyle tiene una Panel propiedad de tipo ItemsPanelTemplate. ItemsControl los tipos tienen una ItemsPanel propiedad de tipo ItemsPanelTemplate.

Cada ItemsControl tipo tiene un valor predeterminado ItemsPanelTemplate. Para la ItemsControl clase , el valor predeterminado ItemsPanel es un ItemsPanelTemplate objeto que especifica un StackPanel. ListBoxPara , el valor predeterminado usa .VirtualizingStackPanel Para MenuItem, el valor predeterminado usa WrapPanel. Para StatusBar, el valor predeterminado usa DockPanel.

Constructores

ItemsPanelTemplate()

Inicializa una instancia de la clase ItemsPanelTemplate.

ItemsPanelTemplate(FrameworkElementFactory)

Inicializa una instancia de la clase ItemsPanelTemplate con la plantilla especificada.

Propiedades

Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.

(Heredado de DispatcherObject)
HasContent

Obtiene un valor que indica si esta plantilla tiene contenido optimizado.

(Heredado de FrameworkTemplate)
IsSealed

Obtiene un valor que indica si este objeto está en un estado inmutable y, por lo tanto, no se puede cambiar.

(Heredado de FrameworkTemplate)
Resources

Obtiene o establece la colección de recursos que se pueden usar en el ámbito de esta plantilla.

(Heredado de FrameworkTemplate)
Template

Obtiene o establece una referencia al objeto que graba o reproduce los nodos XAML de la plantilla cuando un sistema de escritura define o aplica la plantilla.

(Heredado de FrameworkTemplate)
VisualTree

Obtiene o establece el nodo raíz de la plantilla.

(Heredado de FrameworkTemplate)

Métodos

CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.

(Heredado de DispatcherObject)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FindName(String, FrameworkElement)

Busca el elemento asociado con el nombre especificado que se definió en esta plantilla.

(Heredado de FrameworkTemplate)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
LoadContent()

Carga el contenido de la plantilla como una instancia de un objeto y devuelve el elemento raíz del contenido.

(Heredado de FrameworkTemplate)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
RegisterName(String, Object)

Registra un nuevo par de nombre y objeto en el ámbito de nombres actual.

(Heredado de FrameworkTemplate)
Seal()

Bloquea la plantilla de modo que no se pueda modificar.

(Heredado de FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad Resources en las instancias de esta clase.

(Heredado de FrameworkTemplate)
ShouldSerializeVisualTree()

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad VisualTree en las instancias de esta clase.

(Heredado de FrameworkTemplate)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
UnregisterName(String)

Quita una asignación de nombre y objeto del ámbito de nombres XAML.

(Heredado de FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Comprueba que el elemento primario con plantilla es un objeto ItemsPresenter no nulo.

VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.

(Heredado de DispatcherObject)

Implementaciones de interfaz explícitas

INameScope.FindName(String)

Devuelve un objeto que tiene el nombre de identificación proporcionado.

(Heredado de FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Consulta si la propiedad de ambiente especificada está disponible en el ámbito actual.

(Heredado de FrameworkTemplate)

Se aplica a