是否可以设置RadioButton的BorderThickness样式?

时间:2015-04-07 11:57:06

标签: xaml silverlight border

我想改变RadioButton的BorderThickness。这可能吗?
这是我到目前为止所得到的:

<Style TargetType="RadioButton">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="RadioButton">
                    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="Border">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="6" />
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                            <!-- ... -->        
                        </VisualStateManager.VisualStateGroups>             
                    </Border>                   
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我读了这篇post,但不知怎的,它不适合我,因为:

  

名称&#34;厚度动画&#34;命名空间中不存在&#34; http://schemas.microsoft.com/client/2007&#34;

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

回答您的问题:是的,可以设置BorderThickness控件的RadioButton样式。 您想在什么情况下更改BorderThickness? 为了让一个特定的按钮显示更粗的边框,只需相应地设置属性:

<RadioButton x:Name="MyNiceFoobarButton" BorderThickness="6"/>

如果您希望所有RadioButton都有更粗的边框,则必须使用Style

<Style TargetType="RadioButton">
    <Setter Property="BorderThickness" Value="6"/>
</Style>

[编辑] 如果您希望按钮仅在特殊VisualState处于活动状态时显示较粗的边框,则必须覆盖ControlTemplate并指定所有VisualStates及其相应的动画。