ControlTemplate in WPF —— Button

来源:互联网 发布:淘宝卖家一件代发流程 编辑:程序博客网 时间:2024/06/02 02:47
<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>  <!-- FocusVisual -->  <Style x:Key="ButtonFocusVisual">    <Setter Property="Control.Template">      <Setter.Value>        <ControlTemplate>          <Border>            <Rectangle Margin="2"                       StrokeThickness="1"                       Stroke="#60000000"                       StrokeDashArray="1 2" />          </Border>        </ControlTemplate>      </Setter.Value>    </Setter>  </Style>  <!-- Button -->  <Style TargetType="Button">    <Setter Property="SnapsToDevicePixels"            Value="true" />    <Setter Property="OverridesDefaultStyle"            Value="true" />    <Setter Property="FocusVisualStyle"            Value="{StaticResource ButtonFocusVisual}" />    <Setter Property="MinHeight"            Value="23" />    <Setter Property="MinWidth"            Value="75" />    <Setter Property="Template">      <Setter.Value>        <ControlTemplate TargetType="Button">          <Border TextBlock.Foreground="{TemplateBinding Foreground}"                  x:Name="Border"                  CornerRadius="2"                  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 EndPoint="0.5,1"                                   StartPoint="0.5,0">                <GradientStop Color="{DynamicResource ControlLightColor}"                              Offset="0" />                <GradientStop Color="{DynamicResource ControlMediumColor}"                              Offset="1" />              </LinearGradientBrush>            </Border.Background>            <VisualStateManager.VisualStateGroups>              <VisualStateGroup x:Name="CommonStates">                <VisualStateGroup.Transitions>                  <VisualTransition GeneratedDuration="0:0:0.5" />                  <VisualTransition GeneratedDuration="0"                                    To="Pressed" />                </VisualStateGroup.Transitions>                <VisualState x:Name="Normal" />                <VisualState x:Name="MouseOver">                  <Storyboard>                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).                        (GradientBrush.GradientStops)[1].(GradientStop.Color)"                                                  Storyboard.TargetName="Border">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource ControlMouseOverColor}" />                    </ColorAnimationUsingKeyFrames>                  </Storyboard>                </VisualState>                <VisualState x:Name="Pressed">                  <Storyboard>                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).                        (GradientBrush.GradientStops)[1].(GradientStop.Color)"                                                  Storyboard.TargetName="Border">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource ControlPressedColor}" />                    </ColorAnimationUsingKeyFrames>                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).                        (GradientBrush.GradientStops)[0].(GradientStop.Color)"                                                  Storyboard.TargetName="Border">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource PressedBorderDarkColor}" />                    </ColorAnimationUsingKeyFrames>                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).                        (GradientBrush.GradientStops)[1].(GradientStop.Color)"                                                  Storyboard.TargetName="Border">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource PressedBorderLightColor}" />                    </ColorAnimationUsingKeyFrames>                  </Storyboard>                </VisualState>                <VisualState x:Name="Disabled">                  <Storyboard>                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).                        (GradientBrush.GradientStops)[1].(GradientStop.Color)"                                                  Storyboard.TargetName="Border">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource DisabledControlDarkColor}" />                    </ColorAnimationUsingKeyFrames>                    <ColorAnimationUsingKeyFrames                        Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)"                                                  Storyboard.TargetName="Border">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource DisabledForegroundColor}" />                    </ColorAnimationUsingKeyFrames>                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).                        (GradientBrush.GradientStops)[1].(GradientStop.Color)"                                                  Storyboard.TargetName="Border">                      <EasingColorKeyFrame KeyTime="0"                                           Value="{StaticResource DisabledBorderDarkColor}" />                    </ColorAnimationUsingKeyFrames>                  </Storyboard>                </VisualState>              </VisualStateGroup>            </VisualStateManager.VisualStateGroups>            <ContentPresenter Margin="2"                              HorizontalAlignment="Center"                              VerticalAlignment="Center"                              RecognizesAccessKey="True" />          </Border>          <ControlTemplate.Triggers>            <Trigger Property="IsDefault"                     Value="true">              <Setter TargetName="Border"                      Property="BorderBrush">                <Setter.Value>                  <LinearGradientBrush StartPoint="0,0"                                       EndPoint="0,1">                    <GradientBrush.GradientStops>                      <GradientStopCollection>                        <GradientStop Color="{DynamicResource DefaultBorderBrushLightBrush}"                                      Offset="0.0" />                        <GradientStop Color="{DynamicResource DefaultBorderBrushDarkColor}"                                      Offset="1.0" />                      </GradientStopCollection>                    </GradientBrush.GradientStops>                  </LinearGradientBrush>                </Setter.Value>              </Setter>            </Trigger>          </ControlTemplate.Triggers>        </ControlTemplate>      </Setter.Value>    </Setter>  </Style></ResourceDictionary>

原创粉丝点击