ControlTemplate in WPF —— Checkbox

来源:互联网 发布:淘宝沙发椅子图片 编辑:程序博客网 时间:2024/05/29 16:28
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"                    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"                    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"                    mc:Ignorable="d">  <ResourceDictionary.MergedDictionaries>    <ResourceDictionary Source="Shared.xaml" />  </ResourceDictionary.MergedDictionaries>  <!-- Focus Visual -->  <Style x:Key="CheckBoxFocusVisual">    <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>  <!-- SimpleStyles: CheckBox -->  <Style x:Key="{x:Type CheckBox}"         TargetType="{x:Type CheckBox}">    <Setter Property="SnapsToDevicePixels"            Value="true" />    <Setter Property="OverridesDefaultStyle"            Value="true" />    <Setter Property="FocusVisualStyle"            Value="{DynamicResource CheckBoxFocusVisual}" />    <Setter Property="Template">      <Setter.Value>        <ControlTemplate TargetType="{x:Type CheckBox}">          <BulletDecorator Background="Transparent">            <BulletDecorator.Bullet>              <Border x:Name="Border"                      Width="13"                      Height="13"                      CornerRadius="0"                      BorderThickness="1">                <Border.BorderBrush>                  <LinearGradientBrush StartPoint="0,0"                                       EndPoint="0,1">                    <LinearGradientBrush.GradientStops>                      <GradientStopCollection>                        <GradientStop Color="{DynamicResource BorderLightColor}"                                      Offset="0.0" />                        <GradientStop Color="{DynamicResource BorderDarkColor}"                                      Offset="1.0" />                      </GradientStopCollection>                    </LinearGradientBrush.GradientStops>                  </LinearGradientBrush>                </Border.BorderBrush>                <Border.Background>                  <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>                </Border.Background>                <Grid>                  <Path Visibility="Collapsed"                        Width="7"                        Height="7"                        x:Name="CheckMark"                        SnapsToDevicePixels="False"                        StrokeThickness="2"                        Data="M 0 0 L 7 7 M 0 7 L 7 0">                    <Path.Stroke>                      <SolidColorBrush Color="{DynamicResource GlyphColor}" />                    </Path.Stroke>                  </Path>                  <Path Visibility="Collapsed"                        Width="7"                        Height="7"                        x:Name="InderminateMark"                        SnapsToDevicePixels="False"                        StrokeThickness="2"                        Data="M 0 7 L 7 0">                    <Path.Stroke>                      <SolidColorBrush Color="{DynamicResource GlyphColor}" />                    </Path.Stroke>                  </Path>                </Grid>              </Border>            </BulletDecorator.Bullet>            <VisualStateManager.VisualStateGroups>              <VisualStateGroup x:Name="CommonStates">                <VisualState x:Name="Normal" />                <VisualState x:Name="MouseOver">                  <Storyboard>                    <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"                                                  Storyboard.TargetProperty="(Panel.Background).                        (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="(Panel.Background).                        (GradientBrush.GradientStops)[1].(GradientStop.Color)">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource ControlPressedColor}" />                    </ColorAnimationUsingKeyFrames>                    <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"                                                  Storyboard.TargetProperty="(Border.BorderBrush).                        (GradientBrush.GradientStops)[0].(GradientStop.Color)">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource PressedBorderDarkColor}" />                    </ColorAnimationUsingKeyFrames>                    <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"                                                  Storyboard.TargetProperty="(Border.BorderBrush).                        (GradientBrush.GradientStops)[1].(GradientStop.Color)">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource PressedBorderLightColor}" />                    </ColorAnimationUsingKeyFrames>                  </Storyboard>                </VisualState>                <VisualState x:Name="Disabled" />              </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">                  <Storyboard>                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)"                                                   Storyboard.TargetName="InderminateMark">                      <DiscreteObjectKeyFrame KeyTime="0"                                              Value="{x:Static Visibility.Visible}" />                    </ObjectAnimationUsingKeyFrames>                  </Storyboard>                </VisualState>              </VisualStateGroup>            </VisualStateManager.VisualStateGroups>            <ContentPresenter Margin="4,0,0,0"                              VerticalAlignment="Center"                              HorizontalAlignment="Left"                              RecognizesAccessKey="True" />          </BulletDecorator>        </ControlTemplate>      </Setter.Value>    </Setter>  </Style></ResourceDictionary>

原创粉丝点击