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

Classe StyleSelector

Fornece uma maneira para aplicar estilos com base na lógica personalizada.

System.Object
  System.Windows.Controls.StyleSelector

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

public class StyleSelector
<StyleSelector .../>

O tipo StyleSelector expõe os membros a seguir.

  NomeDescrição
Método públicoStyleSelectorInicializa uma nova instância de um StyleSelector.
Superior

  NomeDescrição
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalize Permite um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método públicoSelectStyleQuando substituído em uma classe derivada, retorna um Style com base em lógica personalizada.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Superior

Para criar um StyleSelector que se aplica um estilo com base na lógica personalizada, crie uma subclasse da StyleSelector de classe e implementar o SelectStyle método.

O exemplo a seguir mostra como definir um StyleSelector que define um Style para uma linha. Este exemplo define a cor de Background de acordo com ao índice da linha.


public class ListViewItemStyleSelector : StyleSelector
{
    public override Style SelectStyle(object item, 
        DependencyObject container)
    {
        Style st = new Style();
        st.TargetType = typeof(ListViewItem);
        Setter backGroundSetter = new Setter();
        backGroundSetter.Property = ListViewItem.BackgroundProperty;
        ListView listView = 
            ItemsControl.ItemsControlFromItemContainer(container) 
              as ListView;
        int index = 
            listView.ItemContainerGenerator.IndexFromContainer(container);
        if (index % 2 == 0)
        {
            backGroundSetter.Value = Brushes.LightBlue;
        }
        else
        {
            backGroundSetter.Value = Brushes.Beige;
        }
        st.Setters.Add(backGroundSetter);
        return st;
    }
}    


O exemplo a seguir mostra como definir um ResourceKey para o StyleSelector. O prefixo namespc mapeia para um namespace CLR e o assembly correspondente onde StyleSelector está definido. Para obter mais informações, consulte Espaços de nomes XAML e mapeamentos de espaços de nomes.


<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>


O exemplo a seguir mostra como definir a propriedade ItemContainerStyleSelector de um ListView a esse recurso StyleSelector.


<ListView 
      ItemsSource="{Binding Source={StaticResource EmployeeData}, 
                                        XPath=Employee}"
      ItemContainerStyleSelector="{DynamicResource myStyleSelector}" >      
  <ListView.View>
    <GridView>
      <GridViewColumn DisplayMemberBinding="{Binding XPath=FirstName}" 
                      Header="First Name" Width="120"/>
      <GridViewColumn DisplayMemberBinding="{Binding XPath=LastName}" 
                      Header="Last Name" Width="120"/>
      <GridViewColumn DisplayMemberBinding="{Binding XPath=FavoriteCity}" 
                      Header="Favorite City" Width="120"/>
    </GridView>
  </ListView.View>
</ListView>


Para obter um exemplo de como criar um seletor para escolher um recurso de estilo definido, consulte a implementação de DataTemplateSelector.SelectTemplate, que permite que você use lógica personalizada para selecionar um DataTemplate, com base em um conceito semelhante.

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

Qualquer estático (Shared no Visual Basic) membro público desse tipo é thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft