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>
  • 相关阅读:
    Java设计模式之单例模式
    Bootstrap-table使用footerFormatter做统计列
    Bootstrap进度条
    基于Bootstrap的表格插件bootstrap-table
    基于Bootstrap的对话框插件bootstrap-dialog
    基于Bootstrap的下拉框插件bootstrap-select
    JsonConfig处理日期时间
    Jquery表单验证插件validate
    Hibernate使用Criteria去重distinct+分页
    设置iframe高度自适应屏幕高度
  • 原文地址:https://www.cnblogs.com/tianciliangen/p/7410521.html
Copyright © 2011-2022 走看看