每次我想在WPF中更改样式的属性时,我需要创建一个新样式吗?

本文关键字:样式 创建 一个 新样式 WPF 属性 | 更新日期: 2023-09-27 18:02:33

我在WPF中有两个自定义样式的按钮。现在两个按钮的颜色是一样的,但是我决定把一个按钮改成蓝色。现在我的问题是,即使我想要的改变如此简单,我还需要创建另一种风格吗?这似乎有点多余,不得不重复所有的代码为一个按钮,只是因为我想要它的不同的颜色。

当我尝试覆盖按钮的背景色时,它会从按钮中删除应用的样式。我认为它应该像CSS一样,您可以覆盖一个属性,同时保持其他属性不变,尽管情况并非如此。我不需要它了,所以我不需要自定义控件。有没有办法简单地改变背景颜色而不重复所有的样式代码?

每次我想在WPF中更改样式的属性时,我需要创建一个新样式吗?

可以另创建一个样式BasedOn。参见MSDN: http://msdn.microsoft.com/en-us/library/system.windows.style.basedon(v=vs.110).aspx

<Style x:Key="Style1">
  <Setter Property="Control.Background" Value="Yellow"/>
</Style>
<Style x:Key="Style2" BasedOn="{StaticResource Style1}">
  <Setter Property="Control.Foreground" Value="Blue"/>
</Style>