StyleSelector Klasa
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Zapewnia sposób stosowania stylów na podstawie logiki niestandardowej.
public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
- Dziedziczenie
-
StyleSelector
Przykłady
W poniższym przykładzie pokazano, jak zdefiniować element StyleSelector definiujący wiersz Style . W tym przykładzie zdefiniowano Background kolor zgodnie z indeksem wierszy.
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
W poniższym przykładzie pokazano, jak zdefiniować element ResourceKey dla .StyleSelector Prefiks namespc jest mapowy na przestrzeń nazw CLR i odpowiedni zestaw, w którym StyleSelector jest zdefiniowany. Aby uzyskać więcej informacji, zobacz Przestrzenie nazw XAML i Mapowanie przestrzeni nazw dla WPF XAML.
<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>
W poniższym przykładzie pokazano, jak ustawić ItemContainerStyleSelector właściwość obiektu ListView na ten StyleSelector zasób.
<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>
Aby zapoznać się z przykładem tworzenia selektora w celu wybrania zdefiniowanego zasobu stylu, zobacz implementację DataTemplateSelector.SelectTemplateelementu , która umożliwia użycie logiki niestandardowej do wybrania elementu DataTemplatena podstawie podobnej koncepcji.
Uwagi
Aby utworzyć StyleSelector styl stosowany na podstawie logiki niestandardowej, utwórz podklasę StyleSelector klasy i zaimplementuj metodę SelectStyle .
Konstruktorów
| Nazwa | Opis |
|---|---|
| StyleSelector() |
Inicjuje nowe wystąpienie klasy StyleSelector. |
Metody
| Nazwa | Opis |
|---|---|
| Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Dziedziczone od Object) |
| GetHashCode() |
Służy jako domyślna funkcja skrótu. (Dziedziczone od Object) |
| GetType() |
Type Pobiera bieżące wystąpienie. (Dziedziczone od Object) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Dziedziczone od Object) |
| SelectStyle(Object, DependencyObject) |
W przypadku zastąpienia w klasie pochodnej zwraca wartość opartą Style na logice niestandardowej. |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Dziedziczone od Object) |