我想改变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;
有什么想法吗?
答案 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
及其相应的动画。