StyleSelector Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce una modalità per applicare gli stili in base alla logica personalizzata.
public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
- Ereditarietà
-
StyleSelector
Esempio
Nell'esempio seguente viene illustrato come definire un StyleSelector oggetto che definisce un Style oggetto per una riga. In questo esempio viene definito il Background colore in base all'indice di riga.
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
Nell'esempio seguente viene illustrato come definire un ResourceKey oggetto per .StyleSelector Il namespc
prefisso esegue il mapping a uno spazio dei nomi CLR e all'assembly corrispondente in cui è definito .StyleSelector Per altre informazioni, vedere Spazi dei nomi XAML e Mapping dello spazio dei nomi per XAML WPF.
<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>
Nell'esempio seguente viene illustrato come impostare la ItemContainerStyleSelector proprietà di un oggetto ListView su questa StyleSelector risorsa.
<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>
Per un esempio di come creare un selettore per scegliere una risorsa di stile definita, vedere l'implementazione di DataTemplateSelector.SelectTemplate, che consente di usare la logica personalizzata per selezionare un DataTemplateoggetto , in base a un concetto simile.
Commenti
Per creare un StyleSelector oggetto che applica uno stile basato sulla logica personalizzata, creare una sottoclasse della StyleSelector classe e implementare il SelectStyle metodo .
Costruttori
StyleSelector() |
Inizializza una nuova istanza della classe StyleSelector. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
SelectStyle(Object, DependencyObject) |
In caso di override in una classe derivata, restituisce un oggetto Style basato sulla logica personalizzata. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |