我正在创建一个自定义控件(源自Control
)并想要为控件定义默认主题。以前我创建的所有自定义控件,我都使用过
static IntegerUpDown()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(IntegerUpDown),
new FrameworkPropertyMetadata(typeof(IntegerUpDown)));
}
有了这个assembly
属性:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly,
ResourceDictionaryLocation.SourceAssembly)]
执行此操作的替代方法是(我也在某些控件中注意到)-
public IntegerUpDown()
{
DefaultStyleKey = typeof(IntegerUpDown);
}
我想知道这两种方法的优缺点以及更喜欢哪一种?
我可以观察到第一种方法要求依赖属性框架注册默认样式键。它只执行一次(在静态构造函数中),然后用于所有实例IntegerUpDown
。第二种方法在实例时显式分配 KeyIntegerUpDown
是自己创建的。他们俩对我来说似乎都不错。
MSDN 说...
元数据可以被覆盖,以便子类可以通过以下方式调整 DP
覆盖属性的元数据,而不是完全覆盖
重新实现属性本身。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)