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 マップされます。 詳細については、「 XAML 名前空間」と「WPF 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) |
適用対象
こちらもご覧ください
.NET