StyleSelector Classe

Définition

Fournit une méthode pour appliquer des styles selon une logique personnalisée.Provides a way to apply styles based on custom logic.

public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
Héritage
StyleSelector

Exemples

L’exemple suivant montre comment définir un StyleSelector qui définit un Style pour une ligne.The following example shows how to define a StyleSelector that defines a Style for a row. Cet exemple définit la Background couleur en fonction de l’index de ligne.This example defines the Background color according to the row index.

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;
    }
}    
Public Class ListViewItemStyleSelector
    Inherits StyleSelector
    Public Overrides Function SelectStyle(ByVal item As Object, ByVal container As DependencyObject) As Style
        Dim st As New Style()
        st.TargetType = GetType(ListViewItem)
        Dim backGroundSetter As New Setter()
        backGroundSetter.Property = ListViewItem.BackgroundProperty
        Dim listView As ListView = TryCast(ItemsControl.ItemsControlFromItemContainer(container), ListView)
        Dim index As Integer = listView.ItemContainerGenerator.IndexFromContainer(container)
        If index Mod 2 = 0 Then
            backGroundSetter.Value = Brushes.LightBlue
        Else
            backGroundSetter.Value = Brushes.Beige
        End If
        st.Setters.Add(backGroundSetter)
        Return st
    End Function
End Class

L’exemple suivant montre comment définir un ResourceKey pour le StyleSelector .The following example shows how to define a ResourceKey for the StyleSelector. Le namespc préfixe est mappé à un CLRCLR espace de noms et à l’assembly correspondant dans lequel StyleSelector est défini.The namespc prefix maps to a CLRCLR namespace and the corresponding assembly where the StyleSelector is defined. Pour plus d’informations, consultez espaces de noms XAML et mappage d’espace de noms pour XAML WPF.For more information, see XAML Namespaces and Namespace Mapping for WPF XAML.

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

L’exemple suivant montre comment affecter à la ItemContainerStyleSelector propriété d’un la valeur de ListView cette StyleSelector ressource.The following example shows how to set the ItemContainerStyleSelector property of a ListView to this StyleSelector resource.

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

Pour obtenir un exemple de création d’un sélecteur pour choisir une ressource de style définie, consultez l’implémentation de DataTemplateSelector.SelectTemplate , qui vous permet d’utiliser une logique personnalisée pour sélectionner un DataTemplate , en fonction d’un concept similaire.For an example of how to create a selector to choose a defined style resource, see the implementation of DataTemplateSelector.SelectTemplate, which allows you to use custom logic to select a DataTemplate, based on a similar concept.

Remarques

Pour créer un StyleSelector qui applique un style basé sur une logique personnalisée, créez une sous-classe de la StyleSelector classe et implémentez la SelectStyle méthode.To create a StyleSelector that applies a style based on custom logic, create a subclass of the StyleSelector class and implement the SelectStyle method.

Constructeurs

StyleSelector()

Initialise une nouvelle instance d'un objet StyleSelector.Initializes a new instance of a StyleSelector.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
SelectStyle(Object, DependencyObject)

En cas de substitution dans une classe dérivée, retourne un Style basé sur la logique personnalisée.When overridden in a derived class, returns a Style based on custom logic.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

S’applique à

Voir aussi