StyleSelector Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een manier om stijlen toe te passen op basis van aangepaste logica.
public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
- Overname
-
StyleSelector
Voorbeelden
In het volgende voorbeeld ziet u hoe u een StyleSelector voor een rij definieert Style . In dit voorbeeld wordt de Background kleur gedefinieerd op basis van de rijindex.
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
In het volgende voorbeeld ziet u hoe u een ResourceKey voor de StyleSelector. Het namespc voorvoegsel wordt toegewezen aan een CLR-naamruimte en de bijbehorende assembly waarin het StyleSelector is gedefinieerd. Zie XAML-naamruimten en naamruimtetoewijzingen voor WPF XAML voor meer informatie.
<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>
In het volgende voorbeeld ziet u hoe u de ItemContainerStyleSelector eigenschap van een ListView resource instelt op deze 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>
Voor een voorbeeld van het maken van een selector om een gedefinieerde stijlresource te kiezen, raadpleegt u de implementatie van DataTemplateSelector.SelectTemplate, waarmee u aangepaste logica kunt gebruiken om een DataTemplate, op basis van een vergelijkbaar concept te selecteren.
Opmerkingen
Als u een StyleSelector stijl wilt maken die een stijl toepast op basis van aangepaste logica, maakt u een subklasse van de StyleSelector klasse en implementeert u de SelectStyle methode.
Constructors
| Name | Description |
|---|---|
| StyleSelector() |
Initialiseert een nieuw exemplaar van de StyleSelector klasse. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| SelectStyle(Object, DependencyObject) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een Style resultaat geretourneerd op basis van aangepaste logica. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |