Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Propriedade ItemsControl.ItemContainerStyle

Obtém ou define o Style que é aplicado ao elemento de contêiner gerados para cada item.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (em PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(true)]
public Style ItemContainerStyle { get; set; }
<object>
  <object.ItemContainerStyle>
    <Style .../>
  </object.ItemContainerStyle>
</object>
<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>

Valores de XAML

ResourceExtension

One of the following: 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, por exemplo, os recursos de sistema ou preferências do usuário, StaticResource referência a um estilo é normalmente recomendada para o desempenho.

StyleResourceKey

x:Keyreferindo-se ao estilo que está sendo solicitado como um recurso de valor de seqüência.

Valor de propriedade

Tipo: System.Windows.Style
O Style que é aplicado ao elemento de contêiner gerados para cada item. The default is null.

Campo identificador

ItemContainerStyleProperty

Propriedades de metadados definidas como true

None

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

O ItemsControl fornece grande flexibilidade para personalização visual e fornece vários estilos e propriedades de 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 sobre Templating de dados.

O exemplo a seguir demonstra como usar essa propriedade. Considere o seguinte data-bound ListBox:


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


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


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


O ListBoxItem é o elemento de contêiner para o ListBox de controle. Portanto, uma alternativa para a anterior é definir o ItemContainerStyle propriedade da ListBox para o estilo definido. Para isso, dê a ListBoxItem estilo de um x:Key para que ele está 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 a 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"/>


Os dois cenários mencionados produzem o mesmo resultado. No entanto, é uma das vantagens de disponibilizar o estilo como um recurso que você pode reutilizar o estilo. Definindo a ItemContainerStyle explicitamente a propriedade também pode fornecer maior legibilidade.

Para o exemplo completo, consulte Introdução aos estilos e modelos de exemplo.

O exemplo a seguir foi elaborado para ilustrar a função dos diferentes modelos e estilos relacionados propriedades fornecidas pelo ItemsControl. O ItemsControl neste exemplo está vinculado a uma coleção de Task objetos. 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>


The following is a screenshot of the example when it is rendered:

Captura de tela de exemplo de ItemsControl

Two other style-related properties of the ItemsControl that are not shown here are GroupStyle e GroupStyleSelector.

.NET Framework

Com suporte em: 4, 3.5, 3.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft