我正在创建一个自定义控件(派生自Control),并希望为该控件定义默认主题。以前,我使用过所有我创建的自定义控件

static IntegerUpDown()
{
    DefaultStyleKeyProperty.OverrideMetadata(typeof(IntegerUpDown),
    new FrameworkPropertyMetadata(typeof(IntegerUpDown)));
}

具有以下assembly属性:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly,
ResourceDictionaryLocation.SourceAssembly)]

实现此目的的另一种方法是(我在某些控件中也注意到了)-
public IntegerUpDown()
{
    DefaultStyleKey = typeof(IntegerUpDown);
}

我想知道这两种方法的利弊,哪一种更可取?

最佳答案

我可以观察到第一种方法要求依赖项属性框架注册默认样式键。它只会执行一次(在静态构造函数中),然后再用于IntegerUpDown的所有实例。第二种方法是在自己创建IntegerUpDown实例时显式地分配Key。他们对我来说似乎都还可以。

MSDN说...

关于.net - 设置默认样式键的方法之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7646838/

10-09 00:18