Silverlight的RadioButton样式--记录

方便日后项目中提取样式代码,记录在此博客中


样式代码如下:

<Style x:Key="RadioButtonStyle1" TargetType="RadioButton">
 <Setter Property="Background" Value="#FF448DCA"/>
 <Setter Property="Foreground" Value="#FF556676"/>
 <Setter Property="HorizontalContentAlignment" Value="Left"/>
 <Setter Property="VerticalContentAlignment" Value="Top"/>
 <Setter Property="Padding" Value="4,1,0,0"/>
 <Setter Property="BorderThickness" Value="1"/>
 <Setter Property="BorderBrush" Value="#41a3ef" />
 <Setter Property="Template">
  <Setter.Value>
   <ControlTemplate TargetType="RadioButton">
    <Grid>
     <Grid.ColumnDefinitions>
      <ColumnDefinition Width="16"/>
      <ColumnDefinition Width="*"/>
     </Grid.ColumnDefinitions>
     <VisualStateManager.VisualStateGroups>
      <VisualStateGroup x:Name="CommonStates">
       <VisualState x:Name="Normal"/>
       <VisualState x:Name="MouseOver">
        <Storyboard>
         <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundOverlay"/>
        <!-- <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BoxMiddleBackground"/> -->
        </Storyboard>
       </VisualState>
       <VisualState x:Name="Pressed">
        <Storyboard>
         <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundOverlay"/>
        <!-- <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BoxMiddleBackground"/> -->
        </Storyboard>
       </VisualState>
       <VisualState x:Name="Disabled">
        <Storyboard>
         <DoubleAnimation Duration="0" To=".55" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="contentPresenter"/>
         <DoubleAnimation Duration="0" To="0.55" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="DisabledVisualElement"/>
        </Storyboard>
       </VisualState>
      </VisualStateGroup>
      <VisualStateGroup x:Name="CheckStates">
       <VisualState x:Name="Checked">
        <Storyboard>
        <!-- <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="CheckIcon"/> -->
         <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="BoxMiddle" />
        </Storyboard>
       </VisualState>
       <VisualState x:Name="Unchecked"/>
      </VisualStateGroup>
      <VisualStateGroup x:Name="FocusStates">
       <VisualState x:Name="Focused">
        <Storyboard>
         <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="ContentFocusVisualElement"/>
        </Storyboard>
       </VisualState>
       <VisualState x:Name="Unfocused"/>
      </VisualStateGroup>
      <VisualStateGroup x:Name="ValidationStates">
       <VisualState x:Name="Valid"/>
       <VisualState x:Name="InvalidUnfocused">
        <Storyboard>
         <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement">
          <DiscreteObjectKeyFrame KeyTime="0">
           <DiscreteObjectKeyFrame.Value>
            <Visibility>Visible</Visibility>
           </DiscreteObjectKeyFrame.Value>
          </DiscreteObjectKeyFrame>
         </ObjectAnimationUsingKeyFrames>
        </Storyboard>
       </VisualState>
       <VisualState x:Name="InvalidFocused">
        <Storyboard>
         <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement">
          <DiscreteObjectKeyFrame KeyTime="0">
           <DiscreteObjectKeyFrame.Value>
            <Visibility>Visible</Visibility>
           </DiscreteObjectKeyFrame.Value>
          </DiscreteObjectKeyFrame>
         </ObjectAnimationUsingKeyFrames>
         <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="validationTooltip">
          <DiscreteObjectKeyFrame KeyTime="0">
           <DiscreteObjectKeyFrame.Value>
            <System:Boolean>True</System:Boolean>
           </DiscreteObjectKeyFrame.Value>
          </DiscreteObjectKeyFrame>
         </ObjectAnimationUsingKeyFrames>
        </Storyboard>
       </VisualState>
      </VisualStateGroup>
     </VisualStateManager.VisualStateGroups>
     <Grid HorizontalAlignment="Left" VerticalAlignment="Top">
      <Ellipse x:Name="BackgroundOverlay" Fill="#dff1ff" Height="14" Margin="1" Opacity="0" Stroke="Transparent" StrokeThickness="0" Width="14"/>
      <Ellipse x:Name="Background" Fill="Transparent" Height="14" Margin="1" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}" Width="14"/>        
     <!-- <Ellipse x:Name="BoxMiddleBackground" Fill="Transparent" Height="10" Stroke="Transparent" StrokeThickness="0" Width="10"/> -->
      <Ellipse x:Name="BoxMiddle" Opacity="0" Height="6" StrokeThickness="0" Width="6" Fill="#41a3ef" Stroke="Transparent" />
      
     <!-- <Ellipse x:Name="BoxMiddleLine" Height="10" Opacity="0" Stroke="Transparent" StrokeThickness="0" Width="10"/> -->
     <!-- <Ellipse x:Name="CheckIcon" Fill="#FF333333" Height="4" Opacity="0" Width="4"/> -->
      <Ellipse x:Name="DisabledVisualElement" Fill="#FFFFFFFF" Height="14" Opacity="0" Width="14"/>
      <Ellipse x:Name="ContentFocusVisualElement" Height="16" IsHitTestVisible="false" Opacity="0" Stroke="#FF6DBDD1" StrokeThickness="1" Width="16"/>
      <Grid x:Name="ValidationErrorElement" ToolTipService.PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}" Visibility="Collapsed">
       <ToolTipService.ToolTip>
        <ToolTip x:Name="validationTooltip" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Placement="Right" PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource ValidationToolTipTemplate}">
         <ToolTip.Triggers>
          <EventTrigger RoutedEvent="Canvas.Loaded">
           <BeginStoryboard>
            <Storyboard>
             <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsHitTestVisible" Storyboard.TargetName="validationTooltip">
              <DiscreteObjectKeyFrame KeyTime="0">
               <DiscreteObjectKeyFrame.Value>
                <System:Boolean>true</System:Boolean>
               </DiscreteObjectKeyFrame.Value>
              </DiscreteObjectKeyFrame>
             </ObjectAnimationUsingKeyFrames>
            </Storyboard>
           </BeginStoryboard>
          </EventTrigger>
         </ToolTip.Triggers>
        </ToolTip>
       </ToolTipService.ToolTip>
       <Ellipse Height="14" Stroke="#FFDB000C" StrokeThickness="1" Width="14"/>
       <Ellipse Fill="#FFDB000C" HorizontalAlignment="Right" Height="4" Margin="0,-2,-1,0" VerticalAlignment="Top" Width="4"/>
       <Ellipse Fill="Transparent" HorizontalAlignment="Right" Height="10" Margin="0,-5,-4,0" VerticalAlignment="Top" Width="10"/>
      </Grid>
     </Grid>
     <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="1" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
    </Grid>
   </ControlTemplate>
  </Setter.Value>
 </Setter>
</Style>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值