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

use*_*018 0 c# wpf xaml

我在WPF中有两个带自定义样式的按钮.现在两个按钮都是相同的颜色,但我已经决定要将一个按钮设为蓝色.现在我的问题是我是否需要创建另一种风格,即使改变我不是那么简单?似乎有点多余,因为我想要一个不同的颜色,重复所有代码再一个按钮.

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

rob*_*tos 7

您可以创建另一个Style 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>
Run Code Online (Sandbox Code Playgroud)