我在MSDN上发现了这个:WPF:依赖属性和资源
依赖项属性值可以通过引用资源来设置。通常将资源指定为页根元素的Resources
属性值或应用程序(这些位置启用对资源的最方便访问)。以下示例显示如何定义SolidColorBrush
资源。
XAML:
<DockPanel.Resources>
<SolidColorBrush x:Key="MyBrush" Color="Gold"/>
</DockPanel.Resources>
一旦资源被定义,你可以参考资源,并使用它提供的属性值:
<Button Background="{DynamicResource MyBrush}" Content="I am gold" />
这种特殊的资源为DynamicResource标记扩展引用。 要使用动态资源引用,您必须将其设置为依赖项属性,因此它特别是由WPF属性系统启用的动态资源引用用法。
我的问题是:
- 静态资源不被视为依赖项属性?如果是,为什么?
- 不属于WPF属性系统?
你也可以给我一个例子如何使用依赖属性实现默认值吗?
这是非常有帮助的,现在对我来说更加清晰...当你说typeof(MyButton)时,MyButton是任何控件? (按钮,文本框..)谢谢! – apollon
在这个例子中,一个依赖项属性被添加到类MyButton中,但这个类可以是任何.NET类,它不能是一个控件。 – Klaus78
因此,如果旧的Style属性的值为“{DynamicResource SomeButtonStyle}”,现在我将Style绑定到DependencyProperty。如何让我的DP具有此动态资源的默认值? DP声明的PropertyMetadata参数采用默认对象,但我不知道如何在代码中获取对动态资源的引用。 – Skychan