天天看點

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>