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 XAML

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, 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. O padrão é null.

Campo identificador

ItemContainerStyleProperty

Propriedades de metadados definidas como true

Nenhum

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 controla; para ComboBox, eles são ComboBoxItem controles.

O ItemsControl fornece grande flexibilidade para personalização visual e fornece várias 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 dos dados.

O exemplo a seguir demonstra como usar essa propriedade. Considere o seguinte ligados a dados 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 de estilo, conforme mostrado no exemplo a seguir. O estilo é aplicado a todos os ListBoxItem elementos dentro do escopo, o estilo é definido em.


<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 controle. Portanto, uma alternativa ao precedente é 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 ao 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 propriedade explicitamente também pode fornecer maior legibilidade.

Para o exemplo completo, consulte Introdução ao exemplo de modelagem e os estilos.

O exemplo a seguir foi elaborado para ilustrar a função dos diferentes modelos e os estilos relacionados propriedades fornecidas pelo ItemsControl. O ItemsControl neste exemplo está vinculado a uma coleção de Task objetos. Para fins de demonstração, 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 vemos a tela do exemplo quando renderizada:

ItemsControl example screenshot

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

.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

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 do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft