StyleSelector 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供依自訂邏輯套用樣式的方法。
public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
- 繼承
-
StyleSelector
範例
下列範例示範如何定義 StyleSelector 定義 Style 資料列的 。 此範例會 Background 根據資料列索引定義色彩。
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
下列範例示範如何定義 ResourceKey 的 StyleSelector 。 前置 namespc
詞會對應至 CLR 命名空間,以及定義 所在的對應元件 StyleSelector 。 如需詳細資訊,請參閱 WPF XAML 的 XAML 命名空間和命名空間對應。
<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>
下列範例示範如何將 的 ListView 屬性設定 ItemContainerStyleSelector 為此 StyleSelector 資源。
<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>
如需如何建立選取器以選擇已定義樣式資源的範例,請參閱 的 DataTemplateSelector.SelectTemplate 實作,其可讓您使用自訂邏輯來根據類似的概念來選取 DataTemplate 。
備註
若要根據自訂邏輯建立 StyleSelector 套用樣式的 ,請建立 類別的 StyleSelector 子類別並實作 SelectStyle 方法。
建構函式
StyleSelector() |
初始化 StyleSelector 類別的新執行個體。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
SelectStyle(Object, DependencyObject) |
在衍生類別中覆寫時,根據自訂邏輯傳回 Style。 |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |