2015-04-07 59 views
0

我想更改RadioButton的BorderThickness。这可能吗?
这是我到目前为止有:是否可以设计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但不知何故,它不适合我的工作,因为:

名称“ThicknessAnimation”没有命名空间中存在“ http://schemas.microsoft.com/client/2007

任何想法?

回答

1

要回答你的问题:是的,可以设置RadioButton控件的BorderThickness。 在什么情况下你想改变BorderThickness? 为了有一个特定的按钮显示较厚的边境仅设置属性相应:

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

如果你希望所有的单选按钮有一个较厚的边框,你必须使用一个Style

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

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

相关问题