StyleSelector Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 .
Konstruktory
StyleSelector() |
Inicjuje nowe wystąpienie klasy StyleSelector. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po 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. (Odziedziczone po Object) |