1

我有五个单选按钮,它们都有相同的样式但颜色不同。样式都是分开的。我想做一个主要的样式,并能够分别更改每个样式的背景颜色。

4

1 回答 1

0

以通用的基本样式(例如RadioButtonBaseStyle)定义模板,您不会硬编码背景颜色,而是使用{TemplateBinding Background}; 然后根据RadioButtonBaseStyleBackground使用 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// ForegroundBorderBrush如本博客文章中所述:http ://www.thomaslevesque.com/2011/10/01/wpf-creating-parameterized -带有附加属性的样式/

于 2013-11-02T14:43:23.893 回答