Compartir a través de


ItemsPanelTemplate Clase

Definición

Especifica el panel que crea el ItemsPresenter para el diseño de los elementos de un 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 ListBoxhorizontal, puede crear una plantilla que especifique un StackPanel horizontal y establézcalo como la propiedad ItemsPanel. En el ejemplo siguiente se muestra un ListBoxStyle que crea un ListBoxhorizontal.

<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 ListBox horizontal que tenga esquinas redondeadas. Tenga en cuenta que, en este ejemplo, en lugar de establecer la propiedad ItemsPanel como en el ejemplo anterior, se especifica el StackPanel horizontal en el ControlTemplate. Tenga en cuenta que la propiedad IsItemsHost está establecida en true en el StackPanel, lo que indica que los elementos generados deben ir en el panel. Cuando se especifica de esta manera, el ItemsPanel no se puede reemplazar por el usuario del control sin usar un 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, el ItemsPresenter crea el panel para el diseño de los elementos en función de lo especificado por el 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 distintas propiedades de plantillas y estilos en la ItemsControl, consulte Información general sobre plantillas de datos.

Comentarios

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

Cada tipo de ItemsControl tiene un ItemsPanelTemplatepredeterminado. Para la clase ItemsControl, el valor de ItemsPanel predeterminado es un ItemsPanelTemplate que especifica un StackPanel. Para el ListBox, el valor predeterminado usa el 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 Dispatcher al que está asociado este 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 para que no se pueda cambiar.

(Heredado de FrameworkTemplate)
Resources

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

(Heredado de FrameworkTemplate)
Template

Obtiene o establece una referencia al objeto que registra o reproduce los nodos XAML de la plantilla cuando un escritor 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 que llama tiene acceso a este DispatcherObject.

(Heredado de DispatcherObject)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
FindName(String, FrameworkElement)

Busca el elemento asociado al nombre especificado definido en esta plantilla.

(Heredado de FrameworkTemplate)
GetHashCode()

Actúa como 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 Objectactual.

(Heredado de Object)
RegisterName(String, Object)

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

(Heredado de FrameworkTemplate)
Seal()

Bloquea la plantilla para que no se pueda cambiar.

(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 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 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 o objeto del ámbito de nombres XAML.

(Heredado de FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

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

VerifyAccess()

Exige que el subproceso de llamada tenga acceso a este 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 una propiedad ambiente especificada está disponible en el ámbito actual.

(Heredado de FrameworkTemplate)

Se aplica a