zoukankan      html  css  js  c++  java
  • ControlTemplate in WPF —— RadioButton

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Shared.xaml" />
      </ResourceDictionary.MergedDictionaries>
    
      <!-- Focus Visual -->
    
    <!--<SnippetRadioButtonFocusVisual>-->
      <Style x:Key="RadioButtonFocusVisual">
        <Setter Property="Control.Template">
          <Setter.Value>
            <ControlTemplate>
              <Border>
                <Rectangle Margin="15,0,0,0"
                           StrokeThickness="1"
                           Stroke="#60000000"
                           StrokeDashArray="1 2" />
              </Border>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
    <!--</SnippetRadioButtonFocusVisual>-->
    
      <!--<SnippetRadioButton>-->
      <Style x:Key="{x:Type RadioButton}"
             TargetType="{x:Type RadioButton}">
        <Setter Property="SnapsToDevicePixels"
                Value="true" />
        <Setter Property="OverridesDefaultStyle"
                Value="true" />
        <Setter Property="FocusVisualStyle"
                Value="{DynamicResource RadioButtonFocusVisual}" />
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="{x:Type RadioButton}">
              <BulletDecorator Background="Transparent">
                <BulletDecorator.Bullet>
                  <Grid Width="13"
                        Height="13">
                    <Ellipse x:Name="Border"
                             StrokeThickness="1">
                      <Ellipse.Stroke>
                        <LinearGradientBrush EndPoint="0.5,1"
                                             StartPoint="0.5,0">
                          <GradientStop Color="{DynamicResource BorderLightColor}"
                                        Offset="0" />
                          <GradientStop Color="{DynamicResource BorderDarkColor}"
                                        Offset="1" />
                        </LinearGradientBrush>
                      </Ellipse.Stroke>
                      <Ellipse.Fill>
                        <LinearGradientBrush StartPoint="0,0"
                                             EndPoint="0,1">
                          <LinearGradientBrush.GradientStops>
                            <GradientStopCollection>
                              <GradientStop Color="{DynamicResource ControlLightColor}" />
                              <GradientStop Color="{DynamicResource ControlMediumColor}"
                                            Offset="1.0" />
                            </GradientStopCollection>
                          </LinearGradientBrush.GradientStops>
                        </LinearGradientBrush>
                      </Ellipse.Fill>
                    </Ellipse>
                    <Ellipse x:Name="CheckMark"
                             Margin="4"
                             Visibility="Collapsed">
                      <Ellipse.Fill>
                        <SolidColorBrush Color="{DynamicResource GlyphColor}" />
                      </Ellipse.Fill>
                    </Ellipse>
                  </Grid>
                </BulletDecorator.Bullet>
                <VisualStateManager.VisualStateGroups>
                  <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal" />
                    <VisualState x:Name="MouseOver">
                      <Storyboard>
                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                                      Storyboard.TargetProperty="(Shape.Fill).
                          (GradientBrush.GradientStops)[1].(GradientStop.Color)">
                          <EasingColorKeyFrame KeyTime="0"
                                               Value="{StaticResource ControlMouseOverColor}" />
                        </ColorAnimationUsingKeyFrames>
                      </Storyboard>
                    </VisualState>
                    <VisualState x:Name="Pressed">
                      <Storyboard>
                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                                      Storyboard.TargetProperty="(Shape.Fill).
                          (GradientBrush.GradientStops)[1].(GradientStop.Color)">
                          <EasingColorKeyFrame KeyTime="0"
                                               Value="{StaticResource ControlPressedColor}" />
                        </ColorAnimationUsingKeyFrames>
                      </Storyboard>
                    </VisualState>
                    <VisualState x:Name="Disabled">
                      <Storyboard>
                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                                      Storyboard.TargetProperty="(Shape.Fill).
                          (GradientBrush.GradientStops)[1].(GradientStop.Color)">
                          <EasingColorKeyFrame KeyTime="0"
                                               Value="{StaticResource ControlLightColor}" />
                        </ColorAnimationUsingKeyFrames>
                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                                      Storyboard.TargetProperty="(Shape.Stroke).
                          (GradientBrush.GradientStops)[1].(GradientStop.Color)">
                          <EasingColorKeyFrame KeyTime="0"
                                               Value="#40000000" />
                        </ColorAnimationUsingKeyFrames>
                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                                      Storyboard.TargetProperty="(Shape.Stroke).
                          (GradientBrush.GradientStops)[0].(GradientStop.Color)">
                          <EasingColorKeyFrame KeyTime="0"
                                               Value="#40000000" />
                        </ColorAnimationUsingKeyFrames>
                      </Storyboard>
                    </VisualState>
                  </VisualStateGroup>
                  <VisualStateGroup x:Name="CheckStates">
                    <VisualState x:Name="Checked">
                      <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)"
                                                       Storyboard.TargetName="CheckMark">
                          <DiscreteObjectKeyFrame KeyTime="0"
                                                  Value="{x:Static Visibility.Visible}" />
                        </ObjectAnimationUsingKeyFrames>
                      </Storyboard>
                    </VisualState>
                    <VisualState x:Name="Unchecked" />
                    <VisualState x:Name="Indeterminate" />
                  </VisualStateGroup>
                </VisualStateManager.VisualStateGroups>
                <ContentPresenter Margin="4,0,0,0"
                                  VerticalAlignment="Center"
                                  HorizontalAlignment="Left"
                                  RecognizesAccessKey="True" />
              </BulletDecorator>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
      <!--</SnippetRadioButton>-->
    </ResourceDictionary>
  • 相关阅读:
    在IIS上启用Gzip压缩(HTTP压缩)
    跨数据库服务器查询和跨表更新
    GOOGLE高级搜索的秘籍
    NET中的规范标准注释(二) -- 创建帮助文档入门篇
    NET中的规范标准注释(一) -- XML注释标签讲解
    如何取出word文档里的图片
    System帐户!我使用你登陆
    横竖两个数字塔的效果BAT批处理怎么写?
    用批处理修改日期,然后在改回来
    根据日期计算星期几----蔡勒(Zeller)公式推导
  • 原文地址:https://www.cnblogs.com/tianciliangen/p/7410521.html
Copyright © 2011-2022 走看看