Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 从控件派生,然后允许其他人应用样式_Wpf_Styles_Controltemplate - Fatal编程技术网

Wpf 从控件派生,然后允许其他人应用样式

Wpf 从控件派生,然后允许其他人应用样式,wpf,styles,controltemplate,Wpf,Styles,Controltemplate,我从控件基类派生了一个新控件,并在静态构造函数中设置了DefaultStyleKeyProperty,以便使用Generic.xaml中的适当样式来定义ControlTemplate。这一切都很好,我得到了几个按钮等预期的外观 现在我想添加一些样式实例来自定义新控件的设置,例如字体和前景色。但是,当我将样式指定给“自定义控件样式”属性时,它似乎删除了原始默认样式,因此不再具有任何外观 这似乎不太正确。TabControl有一个默认样式,但您仍然可以为TabControl.style属性指定一个样

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

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

这似乎不太正确。TabControl有一个默认样式,但您仍然可以为TabControl.style属性指定一个样式,该属性仅修改前景色,不会在该过程中删除TabControl的其余外观


知道我做错了什么吗?

根据默认设置声明您的新样式:

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

根据默认设置声明新样式:

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