Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

ItemsControl.ItemsPanel (Propiedad)

Obtiene o establece la plantilla que define el panel que controla el diseño de elementos.

Espacio de nombres:  System.Windows.Controls
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(false)]
public ItemsPanelTemplate ItemsPanel { get; set; }
<object>
  <object.ItemsPanel>
    <ItemsPanelTemplate .../>
  </object.ItemsPanel>
</object>

Valor de propiedad

Tipo: System.Windows.Controls.ItemsPanelTemplate
ItemsPanelTemplate que define el panel que se utiliza para el diseño de los elementos. El valor predeterminado para ItemsControl es ItemsPanelTemplate que especifica StackPanel.

Campo de identificador

ItemsPanelProperty

Propiedades de metadatos establecidas en true.

Ninguno

Para ListBox, el valor de ItemsPanelTemplate predeterminado especifica VirtualizingStackPanel. Para MenuItem, el valor predeterminado utiliza WrapPanel. Para StatusBar, el valor predeterminado utiliza DockPanel.

Para afectar al diseño de los elementos en ItemsControl, utiliza esta propiedad para especificar ItemsPanelTemplate.

ItemsControl proporciona gran flexibilidad para la personalización visual y proporciona muchas propiedades de estilo y plantillas. Utiliza la propiedad ItemContainerStyle o la propiedad ItemContainerStyleSelector para establecer un estilo que afecta al aspecto de los elementos que contienen los elementos de datos. Por ejemplo, para ListBox, los contenedores generados son controles ListBoxItem; para ComboBox, son controles ComboBoxItem. Si utiliza la agrupación en el control, puede utilizar la propiedad GroupStyle o GroupStyleSelector. Para especificar la visualización de objetos de datos, utilice la propiedad ItemTemplate o la propiedad ItemTemplateSelector. Para obtener más información, vea Información general sobre plantillas de datos.

Para crear un ListBox horizontal, puede crear una plantilla que especifica un StackPanel horizontal y establecerla como la propiedad ItemsPanel. En el ejemplo siguiente se muestra un ListBox Style que crea un ListBox horizontal.


<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 utiliza ControlTemplate para crear un ListBox horizontal con esquinas redondeadas. En este ejemplo, en lugar de establecer la propiedad ItemsPanel como en el ejemplo anterior, el StackPanel horizontal se especifica dentro de ControlTemplate. La propiedad IsItemsHost está establecida en true en StackPanel, lo que indica que los elementos generados deben ir al panel. Al especificarlo de esta manera, el usuario del control no puede reemplazar ItemsPanel sin utilizar una ControlTemplate. Por consiguiente, haga esto sólo si está seguro de que no desea reemplazar el panel 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 basándose en lo que se ha especificado en la 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>


.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

Mostrar:
© 2014 Microsoft