パラメータ化されたスタイルの作成方法に関するチュートリアルを読んでいました(here)。その中で、いくつかの依存関係プロパティを使用します。次のように宣言します。
public static Brush GetTickBrush(DependencyObject obj)
{
return (Brush)obj.GetValue(TickBrushProperty);
}
public static void SetTickBrush(DependencyObject obj, Brush value)
{
obj.SetValue(TickBrushProperty, value);
}
public static readonly DependencyProperty TickBrushProperty =
DependencyProperty.RegisterAttached(
"TickBrush",
typeof(Brush),
typeof(ThemeProperties),
new FrameworkPropertyMetadata(Brushes.Black));
さて、私はスニペットが好きなので、スニペットを作成する必要がないかどうかを確認するために、先に進んでスニペットを探しました。1つありましたが、完全に異なるスタイルでした:
public int MyProperty
{
get { return (int)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(int), typeof(ownerclass), new PropertyMetadata(0));
さて、私が得られないこと:これら2つの違いは何ですか? なぜDependencyObject
一方は値を取得する必要があるのに、もう一方は必要ないのですか? それらを別々のシナリオで使用しますか?