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