天天看点

WPF界面设计技巧(2)—自定义漂亮的按钮样式

首先打开 Microsoft Visual Studio 2008 ,新建一个WPF项目,在上面随便放几个按钮:

WPF界面设计技巧(2)—自定义漂亮的按钮样式

然后给各个按钮设置不同的背景颜色:

WPF界面设计技巧(2)—自定义漂亮的按钮样式

设置好之后就是这样啦:

WPF界面设计技巧(2)—自定义漂亮的按钮样式

然后我们就开始在 App.xaml 文件中定义按钮样式了:

WPF界面设计技巧(2)—自定义漂亮的按钮样式

定义的样式代码如下:

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

Code

WPF界面设计技巧(2)—自定义漂亮的按钮样式

<Application x:Class="WPFButton.App"

WPF界面设计技巧(2)—自定义漂亮的按钮样式

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

WPF界面设计技巧(2)—自定义漂亮的按钮样式

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

WPF界面设计技巧(2)—自定义漂亮的按钮样式

    StartupUri="Window1.xaml">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

    <Application.Resources>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

        <!--定义按钮样式-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

        <Style TargetType="Button">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

            <Setter Property="Foreground" Value="Black"/>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

            <!--修改模板属性-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

            <Setter Property="Template">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                <Setter.Value>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                    <!--控件模板-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                    <ControlTemplate TargetType="Button">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                        <!--背景色-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                        <Border x:Name="back" Opacity="0.8" CornerRadius="3">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <Border.BitmapEffect>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <OuterGlowBitmapEffect Opacity="0.7" GlowSize="0" GlowColor="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Button.Background).(SolidColorBrush.Color)}" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            </Border.BitmapEffect>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <Border.Background>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1.5">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    <GradientBrush.GradientStops>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                        <GradientStopCollection>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <GradientStop Color="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Button.Background).(SolidColorBrush.Color)}" Offset="0"/>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <GradientStop Color="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Button.Background).(SolidColorBrush.Color)}" Offset="0.4"/>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <GradientStop Color="#FFF" Offset="1"/>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                        </GradientStopCollection>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    </GradientBrush.GradientStops>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                </LinearGradientBrush>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            </Border.Background>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <!--前景色及边框-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <Border x:Name="fore" BorderThickness="1" CornerRadius="3" BorderBrush="#5555">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <Border.Background>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                        <GradientBrush.GradientStops>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <GradientStopCollection>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                                <GradientStop Color="#6FFF" Offset="0.5"/>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                                <GradientStop Color="#1111" Offset="0.51"/>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            </GradientStopCollection>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                        </GradientBrush.GradientStops>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    </LinearGradientBrush>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                </Border.Background>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <!--按钮内容-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <ContentPresenter x:Name="content" HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding  Content}">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    <ContentPresenter.BitmapEffect>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                        <DropShadowBitmapEffect Color="#000" Direction="-90" ShadowDepth="2" Softness="0.1" Opacity="0.3" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    </ContentPresenter.BitmapEffect>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                </ContentPresenter>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            </Border>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                        </Border>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                        <!--触发器-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                        <ControlTemplate.Triggers>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <!--鼠标移入移出-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <Trigger Property="IsMouseOver" Value="True">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <Trigger.EnterActions>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    <BeginStoryboard>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                        <Storyboard>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation To="6" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#AFFF" BeginTime="0:0:0.2" Duration="0:0:0.2" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#3FFF" BeginTime="0:0:0.2" Duration="0:0:0.2" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                        </Storyboard>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                    </BeginStoryboard>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                </Trigger.EnterActions>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <Trigger.ExitActions>

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                </Trigger.ExitActions>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            </Trigger>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <!--按钮按下弹起-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <Trigger Property="IsPressed" Value="True">

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation To="3" Duration="0:0:0.1" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#3AAA" Duration="0:0:0.1" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#2111" Duration="0:0:0.1" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation Duration="0:0:0.1" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation Duration="0:0:0.1" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation Duration="0:0:0.1" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <!--按钮失效-->

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                            <Trigger Property="IsEnabled" Value="False">

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                <Setter Property="Foreground" Value="#B444"/>

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation To="0" Duration="0:0:0.3" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation To="1" Duration="0:0:0.1" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Opacity)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation To="-135" Duration="0:0:0.1" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Direction)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#FFF" Duration="0:0:0.3" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#D555" Duration="0:0:0.3" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#CEEE" Duration="0:0:0.3" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation To="#CDDD" Duration="0:0:0.3" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation Duration="0:0:0.1" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Opacity)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <DoubleAnimation Duration="0:0:0.1" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Direction)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation Duration="0:0:0.1" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                                            <ColorAnimation Duration="0:0:0.1" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

                        </ControlTemplate.Triggers>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                    </ControlTemplate>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

                </Setter.Value>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

            </Setter>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

        </Style>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

    </Application.Resources>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

</Application>

WPF界面设计技巧(2)—自定义漂亮的按钮样式

看了先不要头大,我们先看看最终效果,然后回过头来再解释代码:

WPF界面设计技巧(2)—自定义漂亮的按钮样式

这是常规样式

WPF界面设计技巧(2)—自定义漂亮的按钮样式

这个是鼠标移到上面时的样式

WPF界面设计技巧(2)—自定义漂亮的按钮样式

这个是鼠标点击时的样式

WPF界面设计技巧(2)—自定义漂亮的按钮样式

还有就是按钮失效时的样式

效果还算不错吧,下面来讲解代码喽,头晕的同学可以现在就收拾东西回家了哈。

WPF界面设计技巧(2)—自定义漂亮的按钮样式

我们先来看这个命名为“back”的 Border 元素,它用它的 Background 属性充当了整个按钮的背景色。

WPF界面设计技巧(2)—自定义漂亮的按钮样式

<Border.Background>

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

其背景所用的是一个渐变笔刷,起始值和中间值都是引用的按钮本身的背景色,就是我们之前设置过的颜色啦,终止值是白色,这样通过位置调整,我们可以在按钮最下部产生一些向白色的过度色彩效果。

WPF界面设计技巧(2)—自定义漂亮的按钮样式

<Border.BitmapEffect>

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

它的 BitmapEffect 属性我们设置了一个大小为 0 的外发光效果,平常是看不见这效果的,在这里预先设置好,是为了在鼠标移入、按下时实现动画使用。

WPF界面设计技巧(2)—自定义漂亮的按钮样式

再来看看这个命名为“fore”的 Border 元素,它实现的是按钮的边框和高亮反光效果,我为它设置了一个半透明的黑色1像素边框,使得这个边框的色彩可以和背景色混合起来。

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

它的背景同样采用的渐变笔刷,起始值和终止值的位置几乎贴在一起,从而形成比较鲜明的反光度对比。

WPF界面设计技巧(2)—自定义漂亮的按钮样式

ContentPresenter 元素用于呈现按钮原本的内容,对于按钮来说就是按钮上的文字了,当然也可能会存在图片或其它东西。

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

我为之加了一个不太明显的阴影滤镜以增强显示效果。

WPF界面设计技巧(2)—自定义漂亮的按钮样式

剩下的就是些可爱又该死的 Trigger ,我们通过这些触发器来改变按钮在不同状态时的外观。

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

在鼠标移入按钮时,我依次创建了改变外发光效果大小、改变上部反光区域颜色、改变下部反光区域颜色的动画,这里的要点就在于“Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)"”属性设置语句,琢磨一下你就能看出这是对属性路径的描述,只不过它们写起来和看起来都很让人生气。

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

按下和弹起按钮时,我们做了相似的动画改变,与前面相比只是数值略微不同。

WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式
WPF界面设计技巧(2)—自定义漂亮的按钮样式

当按钮失效时,我要改变很多东西,首先将文字颜色设为灰色,然后依次创建了改变外发光效果大小、改变内容阴影效果不透明度、改变内容阴影效果角度、改变内容阴影效果颜色、改变按钮边框颜色、改变上部反光区域颜色、改变下部反光区域颜色的动画。

这里将先前对内容应用的阴影效果彻底改变,使之产生凹陷的效果。

好了,到这里就下课啦,文章有点冗长了,但应该对新手很有帮助,老鸟估计现在已经梦游仙境了吧。

<a href="http://files.cnblogs.com/SkyD/WPFButton20080715014834.rar">源文件下载</a>