我有一个包含按钮的 UserControl:
<Button Content="Button"/>
还有一种风格:
<Style TargetType="Button">
<Setter Property="Background" Value="Blue"/>
</Style>
父窗口(或另一个用户控件)可以设置另一种更通用的样式:
<Style TargetType="Button">
<Setter Property="Background" Value="Red"/>
</Style>
结果是(很明显)父按钮将具有更通用的样式(红色),而我的用户控件将具有更特定样式的按钮(蓝色)。
我想知道如何反转这种行为以实现诸如在我的自定义用户控件中设置默认样式之类的东西,然后可以在必要时在父控件或窗口中覆盖?
关键是,默认样式首先在自定义用户控件中定义,并被其父级自动覆盖。这就是我称之为倒置的方式。
解决方案的假想示例可能如下所示:
<Style TargetType="Button" StylePriority="Default">
<Setter Property="Background" Value="Blue"/>
</Style>
StylePriority
可能表示如果没有为该按钮定义其他样式,则应将默认样式应用于它。