我从 Control 基类派生了一个新控件,并在静态构造函数中设置了 DefaultStyleKeyProperty,以便使用 Generic.xaml 中的适当样式来定义 ControlTemplate。这一切都工作正常,我得到了几个按钮等的预期外观。
现在我想添加一些 Style 实例来自定义新控件的设置,例如字体和前景色。但是,当我将样式分配给自定义控件的 Style 属性时,它似乎删除了原始的默认样式,因此它不再具有任何外观。
这似乎不太正确。 TabControl 有默认样式,但您仍然可以将 Style 分配给 TabControl.Style 属性,该属性仅修改前景色,并且不会在此过程中删除 TabControl 外观的其余部分。
知道我做错了什么吗?
最佳答案
根据默认值声明您的新样式:
<Style TargetType={x:Type MyControl} BasedOn={StaticResource {x:Type MyControl}>
关于wpf - 从 Control 派生,然后允许其他人应用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417683/