Leer en inglés

Compartir vía


StyleSelector Clase

Definición

Proporciona una manera de aplicar estilos basada en lógica personalizada.

C#
public class StyleSelector
Herencia
StyleSelector

Ejemplos

En el ejemplo siguiente se muestra cómo definir un StyleSelector objeto que define un Style para una fila. En este ejemplo se define el Background color según el índice de fila.

C#
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;
    }
}

En el ejemplo siguiente se muestra cómo definir un ResourceKey para .StyleSelector El namespc prefijo se asigna a un espacio de nombres CLR y al ensamblado correspondiente donde se define .StyleSelector Para obtener más información, consulta Espacios de nombres XAML y Asignación de espacios de nombres para XAML de WPF.

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

En el ejemplo siguiente se muestra cómo establecer la ItemContainerStyleSelector propiedad de en ListView este StyleSelector recurso.

XAML
<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 obtener un ejemplo de cómo crear un selector para elegir un recurso de estilo definido, vea la implementación de DataTemplateSelector.SelectTemplate, que le permite usar lógica personalizada para seleccionar un DataTemplate, basado en un concepto similar.

Comentarios

Para crear un StyleSelector objeto que aplique un estilo basado en lógica personalizada, cree una subclase de la StyleSelector clase e implemente el SelectStyle método .

Constructores

StyleSelector()

Inicializa una nueva instancia de la clase StyleSelector.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
SelectStyle(Object, DependencyObject)

Si se reemplaza en una clase derivada, devuelve un valor Style basado en una lógica personalizada.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Producto Versiones
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también