我的自定义控件的默认样式在Generic.xaml中定义,并且工作正常。在WPF中设置自定义控件的隐式样式
但是,当我尝试改变我的自定义控件的样式时,就像使用内置控件时一样,没有任何反应。在App.xaml中我试图通过以下操作来改变我的控制的默认样式:
<Style TargetType="{x:Type my:CustomControl}">
<Setter Property="Background" Value="Red"/>
</Style>
如果我设置x:上述风格和参考的关键属性使用该密钥的所有工作正常,这种风格。
上述造型方法仅适用于内置控件,不适用于自定义控件,或者我只是做错了什么?是否有一个可行的解决方案来实现这种自定义控件的样式?
更新 在这种情况下,我的自定义控件是从System.Windows.Window派生的。
你在静态构造函数设置DefaultStyleKeyProperty.OverrideMetadata或你正在做一些解决方法吗? – shadow32
“上述造型方法仅适用于内置控件并且不适用于自定义控件......是否正确?”不,这不是事实。你可能在声明你的控制权时犯了错误。你也应该表明。 – Clemens
以下Clemens评论我试图复制我的情况在一个新的项目。创建从TextBox继承的自定义控件时,隐式样式可以正常工作。但是,当使用完全相同的设置,并将控件从窗口继承(这是我的原始问题)时,隐式样式不起作用。当使用Window作为基类而不是其他控件时,是否存在隐式样式的问题? – user6836683