StyleSelector Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit une méthode pour appliquer des styles selon une logique personnalisée.
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. Cet exemple définit la Background couleur en fonction de l’index de ligne.
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. Le namespc
préfixe est mappé à un espace de noms CLR et à l’assembly correspondant où est StyleSelector défini. Pour plus d’informations, consultez Espaces de noms XAML et mappage d’espaces de noms pour XAML WPF.
<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>
L’exemple suivant montre comment définir la ItemContainerStyleSelector propriété d’un ListView sur cette StyleSelector ressource.
<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éfini, consultez l’implémentation de , qui vous permet d’utiliser DataTemplateSelector.SelectTemplateune logique personnalisée pour sélectionner un DataTemplate, en fonction d’un concept similaire.
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 .
Constructeurs
StyleSelector() |
Initialise une nouvelle instance de la classe StyleSelector. |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (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. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |