ItemsControl.ItemsPanel Propiedad
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í.
Obtiene o establece la plantilla que define el panel que controla el diseño de elementos.
public:
property System::Windows::Controls::ItemsPanelTemplate ^ ItemsPanel { System::Windows::Controls::ItemsPanelTemplate ^ get(); void set(System::Windows::Controls::ItemsPanelTemplate ^ value); };
[System.ComponentModel.Bindable(false)]
public System.Windows.Controls.ItemsPanelTemplate ItemsPanel { get; set; }
[<System.ComponentModel.Bindable(false)>]
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate
Valor de propiedad
ItemsPanelTemplate que define el panel que se usa para el diseño de los elementos. El valor predeterminado de ItemsControl es un ItemsPanelTemplate que especifica un StackPanel.
- Atributos
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 ListBoxStyle 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 para ControlTemplate crear una horizontal ListBox que tenga esquinas redondeadas. En este ejemplo, en lugar de establecer la ItemsPanel propiedad como en el ejemplo anterior, el horizontal StackPanel se especifica dentro de ControlTemplate. La IsItemsHost propiedad se establece true
en en StackPanel, lo 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, haga esto solo 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, ItemsPresenter crea 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>
Comentarios
ListBoxPara , el valor predeterminado ItemsPanelTemplate especifica .VirtualizingStackPanel Para MenuItem, el valor predeterminado usa WrapPanel. Para StatusBar, el valor predeterminado usa DockPanel.
Para afectar al diseño de los elementos de , ItemsControluse esta propiedad para especificar un ItemsPanelTemplate.
proporciona ItemsControl una gran flexibilidad para la personalización visual y proporciona muchas propiedades de estilo y plantillas. Utilice la ItemContainerStyle propiedad o la ItemContainerStyleSelector propiedad para establecer un estilo para afectar a la apariencia de los elementos que contienen los elementos de datos. Por ejemplo, para ListBox, los contenedores generados son ListBoxItem controles; para ComboBox, son ComboBoxItem controles. Si usa la agrupación en el control, puede usar la GroupStyle propiedad o GroupStyleSelector . Para especificar la visualización de los objetos de datos, use o ItemTemplate la ItemTemplateSelector propiedad . Para más información, consulte Información general sobre plantillas de datos.
Información sobre propiedades de dependencia
Campo identificador | ItemsPanelProperty |
Propiedades de metadatos establecidas en true |
None |
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de