从Control派生,然后允许其他人应用样式

时间:2012-09-14 03:21:31

标签: wpf styles controltemplate

我从Control基类派生了一个新控件,并在静态构造函数中设置DefaultStyleKeyProperty,以便使用Generic.xaml中的相应样式来定义ControlTemplate。这一切都很好,我得到了几个按钮等的预期外观。

现在我想添加一些Style实例来自定义新控件的设置,例如字体和前景色。但是当我将样式分配给自定义控件Style属性时,它似乎删除了原始的默认样式,因此它不再具有任何外观。

这似乎不太合适。 TabControl具有默认样式,但您仍然可以将样式分配给TabControl.Style属性,该属性仅修改前景颜色,并且不会删除过程中其余的TabControl外观。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据默认值声明新样式:

<Style TargetType={x:Type MyControl} BasedOn={StaticResource {x:Type MyControl}>