<! -- 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. 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>
Referring from: http://msdn.microsoft.com/en-us/library/ms753328.aspx