ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel Property

Definición

Obtiene o establece la plantilla que define el panel que controla el diseño de elementos.Gets or sets the template that defines the panel that controls the layout of items.

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; }
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 utiliza para el diseño de los elementos.An ItemsPanelTemplate that defines the panel to use for the layout of the items. El valor predeterminado para ItemsControl es ItemsPanelTemplate que especifica StackPanel.The default value for the ItemsControl is an ItemsPanelTemplate that specifies a StackPanel.

Ejemplos

Para crear un horizontal ListBox, puede crear una plantilla que especifique una horizontal StackPanel y establecerla como la ItemsPanel propiedad.To create a horizontal ListBox, you can create a template that specifies a horizontal StackPanel and set it as the ItemsPanel property. En el ejemplo siguiente se ListBox muestra un Style que crea ListBoxun horizontal.The following example shows a ListBox Style that creates a horizontal ListBox.

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

ControlTemplate En el ejemplo siguiente se usa para crear un ListBox horizontal con esquinas redondeadas.The following example uses a ControlTemplate to create a horizontal ListBox that has rounded corners. En este ejemplo, en lugar de establecer la ItemsPanel propiedad como en el ejemplo anterior, el StackPanel horizontal se especifica dentro ControlTemplatede.In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. La IsItemsHost propiedad se true establece en en StackPanel, lo que indica que los elementos generados deben ir en el panel.The IsItemsHost property is set to true on the StackPanel, indicating that the generated items should go in the panel. Cuando se especifica de esta manera, ItemsPanel no se puede reemplazar por el usuario del control sin ControlTemplateusar.When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. Por lo tanto, haga esto solo si sabe que no desea reemplazar el panel sin el uso de una plantilla.Therefore, only do this if you know you would not want the panel to be replaced without the use of a template.

<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.Alternatively, you can do the following to achieve the same results. En este caso, ItemsPresenter crea el panel para el diseño de los elementos según lo especificado ItemsPanelTemplatepor.In this case, the ItemsPresenter creates the panel for the layout of the items based on what is specified by the 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

En, el valor predeterminado ItemsPanelTemplate especifica VirtualizingStackPanel. ListBoxFor the ListBox, the default ItemsPanelTemplate specifies the VirtualizingStackPanel. En MenuItem, el valor predeterminado WrapPanelusa.For MenuItem, the default uses WrapPanel. En StatusBar, el valor predeterminado DockPanelusa.For StatusBar, the default uses DockPanel.

Para que afecte al diseño de los elementos ItemsControlde un, utilice esta propiedad para especificar ItemsPanelTemplateun.To affect the layout of the items in an ItemsControl, you use this property to specify a ItemsPanelTemplate.

Proporciona ItemsControl una gran flexibilidad para la personalización visual y proporciona muchas propiedades de estilo y plantillas.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Utilice la ItemContainerStyle propiedad o la ItemContainerStyleSelector propiedad para establecer un estilo que afecte a la apariencia de los elementos que contienen los elementos de datos.You use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Por ejemplo, para ListBox, los contenedores generados ListBoxItem son controles; ComboBoxpara, son ComboBoxItem controles.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Si está utilizando la agrupación en el control, puede usar la GroupStyle propiedad o. GroupStyleSelectorIf you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. Para especificar la visualización de los objetos de datos, use ItemTemplate la ItemTemplateSelector propiedad o.To specify the visualization of the data objects, use the ItemTemplate or the ItemTemplateSelector property. Para obtener más información, consulte Información general sobre plantillas de datos.For more information, see Data Templating Overview.

Información sobre propiedades de dependenciaDependency Property Information

Campo de identificadorIdentifier field ItemsPanelProperty
Propiedades de metadatos establecidas entrueMetadata properties set to true NingunaNone

Se aplica a

Consulte también: