请不要被我的例子所迷惑,只是为了问题的表述,请耐心阅读:
在我的WPF应用程序中,如果我想要所有的文本框都有一个“绿色”背景,我可以很容易地在我的Application.Resources中设置它。
在我的WPF应用程序中,如果我想要所有的文本框都有一个“绿色”背景,我可以很容易地在我的Application.Resources中设置它。
<Style TargetType="TextBox">
<Setter Property="Background" Value="Green" />
</Style>
这个很好地工作了 完美无缺... (感谢 WPF)。然而,如果我在应用程序中的某个地方有一个文本框,我想要对其进行一些额外的样式设置 ... 那么我将失去我的绿色背景。
示例:
<TextBox>
<TextBox.Style>
<Style>
<Style.Triggers>
<Trigger Property="TextBox.IsMouseOver" Value="True">
<Setter Property="TextBox.Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
当鼠标悬停在那个文本框上时,它的前景色会变成红色,但绿色背景完全丢失了。
因此,问题是:我如何告诉WPF不要完全抹掉所有来自上方的样式,仅因为我在某个控件中添加了一个简单的、不冲突的小样式?