我有五个单选按钮,它们都有相同的样式但颜色不同。样式都是分开的。我想做一个主要的样式,并能够分别更改每个样式的背景颜色。
问问题
42 次
1 回答
0
以通用的基本样式(例如RadioButtonBaseStyle
)定义模板,您不会硬编码背景颜色,而是使用{TemplateBinding Background}
; 然后根据RadioButtonBaseStyle
您Background
使用 setter 更改属性的位置创建几种样式。
例子:
<Style x:Key="RadioButtonBaseStyle" TargetType="RadioButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton>
...
<Ellipse Fill="{TemplateBinding Background}" />
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="BlueRadioButtonStyle" TargetType="RadioButton" BasedOn="{StaticResource RadioButtonBaseStyle}">
<Setter Property="Background" Value="Blue" />
</Style>
如果您需要更好的控制,您可以创建其他附加属性并使用它们而不是标准Background
// Foreground
,BorderBrush
如本博客文章中所述:http ://www.thomaslevesque.com/2011/10/01/wpf-creating-parameterized -带有附加属性的样式/
于 2013-11-02T14:43:23.893 回答