ItemsControl.ItemContainerStyle ItemsControl.ItemContainerStyle ItemsControl.ItemContainerStyle ItemsControl.ItemContainerStyle Property

Definición

Obtiene o establece Style que se aplica al elemento contenedor generado para cada elemento.Gets or sets the Style that is applied to the container element generated for each item.

public:
 property System::Windows::Style ^ ItemContainerStyle { System::Windows::Style ^ get(); void set(System::Windows::Style ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.Style ItemContainerStyle { get; set; }
member this.ItemContainerStyle : System.Windows.Style with get, set
Public Property ItemContainerStyle As Style

Valor de propiedad

Style que se aplica al elemento contenedor generado para cada elemento.The Style that is applied to the container element generated for each item. De manera predeterminada, es null.The default is null.

Ejemplos

El ejemplo siguiente muestra cómo utilizar esta propiedad.The following example demonstrates how to use this property. Tenga en cuenta la siguiente enlazados a datos ListBox:Consider the following data-bound ListBox:

<ListBox ItemsSource="{Binding Source={StaticResource MyPhotos}}"
         Background="Silver" Width="600" Margin="10" SelectedIndex="0"/>

Para crear un estilo para los elementos que contienen los elementos de datos, cree un ListBoxItem de estilo, como se muestra en el ejemplo siguiente.To create a style for the elements that contain the data items, create a ListBoxItem style, as shown in the following example. El estilo se aplica a todos los ListBoxItem elementos dentro del ámbito está definido el estilo en.The style is applied to all ListBoxItem elements within the scope the style is defined in.

<Style TargetType="ListBoxItem">
  <Setter Property="Opacity" Value="0.5" />
  <Setter Property="MaxHeight" Value="75" />
  <Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
      <Trigger.Setters>
        <Setter Property="Opacity" Value="1.0" />
      </Trigger.Setters>
    </Trigger>
    <EventTrigger RoutedEvent="Mouse.MouseEnter">
      <EventTrigger.Actions>
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation
              Duration="0:0:0.2"
              Storyboard.TargetProperty="MaxHeight"
              To="90"  />
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
    <EventTrigger RoutedEvent="Mouse.MouseLeave">
      <EventTrigger.Actions>
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation
              Duration="0:0:1"
              Storyboard.TargetProperty="MaxHeight"  />
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
  </Style.Triggers>
</Style>

El ListBoxItem es el elemento contenedor para el ListBox control.The ListBoxItem is the container element for the ListBox control. Por lo tanto, es una alternativa al anterior establecer el ItemContainerStyle propiedad de la ListBox al estilo definido.Therefore, an alternative to the preceding is to set the ItemContainerStyle property of the ListBox to the defined style. Para ello, asigne el ListBoxItem estilo un x:Key para que esté disponible como un recurso:To do that, give the ListBoxItem style an x:Key so it is available as a resource:

<Style TargetType="ListBoxItem" x:Key="ContainerStyle">
  <Setter Property="Opacity" Value="0.5" />
  <Setter Property="Opacity" Value="0.5" />
  <Setter Property="MaxHeight" Value="75" />
  <Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
      <Setter Property="Opacity" Value="1.0" />
    </Trigger>

A continuación, establezca el ItemContainerStyle propiedad para el recurso, como se muestra en el ejemplo siguiente:Next, set the ItemContainerStyle property to the resource, as in the following example:

<ListBox ItemsSource="{Binding Source={StaticResource MyPhotos}}"
         ItemContainerStyle="{StaticResource ContainerStyle}" 
         Background="Silver" Width="600" Margin="10" SelectedIndex="0"/>

Ambos de los escenarios anteriores generan el mismo resultado.Both of the preceding scenarios produce the same result. Sin embargo, una de las ventajas de hacer que el estilo disponible como un recurso es que puede reutilizar el estilo.However, one of the advantages of making the style available as a resource is that you can reuse the style. Establecer el ItemContainerStyle propiedad explícitamente también puede proporcionar mayor legibilidad.Setting the ItemContainerStyle property explicitly can also provide greater readability.

Para obtener un ejemplo completo, vea Introducción a los estilos y plantillas de ejemplo.For the complete example, see Introduction to Styling and Templating Sample.

El ejemplo siguiente está diseñado para ilustrar la función de los distintos estilos y plantillas relacionadas con propiedades proporcionadas por el ItemsControl.The following example is designed to illustrate the function of the different styling and templating related properties provided by the ItemsControl. El ItemsControl en este ejemplo se enlaza a una colección de Task objetos.The ItemsControl in this example is bound to a collection of Task objects. A efectos de demostración, los estilos y las plantillas de este ejemplo se declaran todas como inline.For demonstration purposes, the styles and templates in this example are all declared inline.

<ItemsControl Margin="10"
              ItemsSource="{Binding Source={StaticResource myTodoList}}">
  <!--The ItemsControl has no default visual appearance.
      Use the Template property to specify a ControlTemplate to define
      the appearance of an ItemsControl. The ItemsPresenter uses the specified
      ItemsPanelTemplate (see below) to layout the items. If an
      ItemsPanelTemplate is not specified, the default is used. (For ItemsControl,
      the default is an ItemsPanelTemplate that specifies a StackPanel.-->
  <ItemsControl.Template>
    <ControlTemplate TargetType="ItemsControl">
      <Border BorderBrush="Aqua" BorderThickness="1" CornerRadius="15">
        <ItemsPresenter/>
      </Border>
    </ControlTemplate>
  </ItemsControl.Template>
  <!--Use the ItemsPanel property to specify an ItemsPanelTemplate
      that defines the panel that is used to hold the generated items.
      In other words, use this property if you want to affect
      how the items are laid out.-->
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel />
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <!--Use the ItemTemplate to set a DataTemplate to define
      the visualization of the data objects. This DataTemplate
      specifies that each data object appears with the Proriity
      and TaskName on top of a silver ellipse.-->
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <DataTemplate.Resources>
        <Style TargetType="TextBlock">
          <Setter Property="FontSize" Value="18"/>
          <Setter Property="HorizontalAlignment" Value="Center"/>
        </Style>
      </DataTemplate.Resources>
      <Grid>
        <Ellipse Fill="Silver"/>
        <StackPanel>
          <TextBlock Margin="3,3,3,0"
                     Text="{Binding Path=Priority}"/>
          <TextBlock Margin="3,0,3,7"
                     Text="{Binding Path=TaskName}"/>
        </StackPanel>
      </Grid>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
  <!--Use the ItemContainerStyle property to specify the appearance
      of the element that contains the data. This ItemContainerStyle
      gives each item container a margin and a width. There is also
      a trigger that sets a tooltip that shows the description of
      the data object when the mouse hovers over the item container.-->
  <ItemsControl.ItemContainerStyle>
    <Style>
      <Setter Property="Control.Width" Value="100"/>
      <Setter Property="Control.Margin" Value="5"/>
      <Style.Triggers>
        <Trigger Property="Control.IsMouseOver" Value="True">
          <Setter Property="Control.ToolTip"
                  Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                          Path=Content.Description}"/>
        </Trigger>
      </Style.Triggers>
    </Style>
  </ItemsControl.ItemContainerStyle>
</ItemsControl>

La siguiente captura de pantalla muestra el ejemplo cuando se representa:The following is a screenshot of the example when it is rendered:

Captura de pantalla de ejemplo ItemsControlItemsControl example screenshot

Dos otras propiedades relacionadas con el estilo de la ItemsControl que no se muestran aquí son GroupStyle y GroupStyleSelector.Two other style-related properties of the ItemsControl that are not shown here are GroupStyle and GroupStyleSelector.

Comentarios

Use esta propiedad o el ItemContainerStyleSelector propiedad para establecer un estilo que afectan a la apariencia de los elementos que contienen los elementos de datos.You use this 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 son ListBoxItem controla; para ComboBox, son ComboBoxItem controles.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls.

El ItemsControl proporciona gran flexibilidad para la personalización visual y proporciona muchas propiedades aplicar estilos y plantillas.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Para afectar al diseño de los elementos, utilice el ItemsPanel propiedad.To affect the layout of the items, use the ItemsPanel property. Si se utiliza la agrupación en el control, puede usar el GroupStyle o GroupStyleSelector propiedad.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. Para especificar la visualización de objetos de datos, use el ItemTemplate o ItemTemplateSelector propiedad.To specify the visualization of data objects, use the ItemTemplate or ItemTemplateSelector property. Para obtener más información acerca de cuándo se debe especificar un ItemTemplate, consulte Data Templating Overview.For more information about when to specify an ItemTemplate, see Data Templating Overview.

Uso de atributos XAMLXAML Attribute Usage

<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>  

Valores XAMLXAML Values

ResourceExtensionResourceExtension
Uno de los siguientes: StaticResource, o DynamicResource.One of the following: StaticResource, or DynamicResource. A menos que los estilos contengan referencias a posibles referencias de tiempo de ejecución, como los recursos del sistema o las preferencias del usuario StaticResource referencia a un estilo general, se recomienda para el rendimiento.Unless the styles themselves contain references to potential run-time references such as system resources or user preferences, StaticResource reference to a style is usually recommended for performance.

StyleResourceKeyStyleResourceKey
x:Key valor de cadena que hace referencia a la que se solicita como un recurso de estilo.x:Key string value referring to the style being requested as a resource.

Información sobre propiedades de dependenciaDependency Property Information

Campo de identificadorIdentifier field ItemContainerStyleProperty
Establecen las propiedades de metadatos en trueMetadata properties set to true NoneNone

Se aplica a

Consulte también: