我正在阅读有关如何制作参数化样式的教程(此处)。在其中,它使用了一些依赖属性。它这样声明它们:
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));
现在,因为我喜欢片段,所以我继续寻找一个,看看我是否不必制作一个。有一个,但风格完全不同:
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));
现在,我不明白的是:这两者有什么区别?为什么一个需要 aDependencyObject
来获得价值,而另一个不需要?您是否在不同的场景中使用它们?