Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Propriedade ItemsControl.ItemContainerStyle

 

Obtém ou define o Style que é aplicada ao elemento contêiner gerado para cada item.

Namespace:   System.Windows.Controls
Assembly:  PresentationFramework (em PresentationFramework.dll)

[BindableAttribute(true)]
public Style ItemContainerStyle { get; set; }

Valor da Propriedade

Type: System.Windows.Style

O Style que é aplicada ao elemento contêiner gerado para cada item. O padrão é null.

Use essa propriedade ou o ItemContainerStyleSelector propriedade para definir um estilo para afetar a aparência dos elementos que contêm os itens de dados. Por exemplo, para ListBox, os contêineres gerados são ListBoxItem controla; para ComboBox, eles são ComboBoxItem controles.

O ItemsControl fornece grande flexibilidade para personalização visual e muitas propriedades de estilo e modelagem. Para afetar o layout dos itens, use o ItemsPanel propriedade. Se você estiver usando o agrupamento no seu controle, você pode usar o GroupStyle ou GroupStyleSelector propriedade. Para especificar a visualização de objetos de dados, use o ItemTemplate ou ItemTemplateSelector propriedade. Para obter mais informações sobre quando especificar um ItemTemplate, consulte Visão geral de modelagem de dados.

<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>

ResourceExtension

Um dos seguintes: StaticResource, ou DynamicResource. A menos que os estilos próprios contêm referências a possíveis referências de tempo de execução, como recursos de sistema ou preferências do usuário, StaticResource referência a um estilo geralmente é recomendada para desempenho.

StyleResourceKey

x:Key valor de cadeia de caracteres fazendo referência ao estilo como um recurso solicitado.

Campo de identificador

ItemContainerStyleProperty

Propriedades de metadados é definido como true

Nenhuma

O exemplo a seguir demonstra como usar essa propriedade. Considere o seguinte ligados a dados ListBox:

Para criar um estilo para os elementos que contêm os itens de dados, criar um ListBoxItem de estilo, conforme mostrado no exemplo a seguir. O estilo é aplicado a todos os ListBoxItem elementos dentro do escopo, o estilo é definido em.

O ListBoxItem é o elemento de contêiner para o ListBox controle. Portanto, uma alternativa para o anterior é definir o ItemContainerStyle propriedade o ListBox para o estilo definido. Para fazer isso, dê o ListBoxItem estilo um x:Key para que esteja disponível como um recurso:

<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>
  </Style.Triggers>
</Style>

Em seguida, defina o ItemContainerStyle propriedade para o recurso, como no exemplo a seguir:

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

Ambos os casos produzem o mesmo resultado. No entanto, uma das vantagens de disponibilizar o estilo como um recurso é que você pode reutilizar o estilo. Definindo o ItemContainerStyle propriedade explicitamente também pode fornecer maior legibilidade.

Para o exemplo completo, consulte Introduction to Styling and Templating Sample.

O exemplo a seguir foi projetado para ilustrar a função dos diferentes estilos e modelos relacionados propriedades fornecidas pelo ItemsControl. O ItemsControl nesse exemplo é associado a uma coleção de Task objetos. Para a demonstração fins, os estilos e modelos nesse exemplo são todos declarados embutidos.

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

A seguir está uma captura de tela do exemplo quando ela é processada:

Captura de tela de exemplo de ItemsControl

Duas outras propriedades relacionadas a estilo do ItemsControl que não são mostradas aqui são GroupStyle e GroupStyleSelector.

.NET Framework
Disponível desde 3.0
Retornar ao início
Mostrar: