ItemsPanelTemplate Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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) |