WPF自定义漂亮的按钮样式_第1页
WPF自定义漂亮的按钮样式_第2页
WPF自定义漂亮的按钮样式_第3页
WPF自定义漂亮的按钮样式_第4页
WPF自定义漂亮的按钮样式_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、首先打开 Microsoft Visual Studio 2008 ,新建一个WPF项目,在上面随便放几个按钮:然后给各个按钮设置不同的背景颜色:设置好之后就是这样啦:然后我们就开始在 App.xaml 文件中定义按钮样式了:定义的样式代码如下:kkk00以下为引用的内容:<Application x:Class="WPFButton.App"    xmlns="    xmlns:x="    StartupUri="Window1.xaml&q

2、uot;>    <Application.Resources>        <!-定义按钮样式->        <Style TargetType="Button">            <Setter Property="Foreg

3、round" Value="Black"/>            <!-修改模板属性->            <Setter Property="Template">           

4、;     <Setter.Value>                    <!-控件模板->                    <Contr

5、olTemplate TargetType="Button">                        <!-背景色->                 &

6、#160;      <Border x:Name="back" Opacity="0.8" CornerRadius="3">                            <Border.B

7、itmapEffect>                                <OuterGlowBitmapEffect Opacity="0.7" GlowSize="0" GlowColor="Binding R

8、elativeSource=RelativeSource TemplatedParent, Path=(Button.Background).(SolidColorBrush.Color)" />                            </Border.BitmapEffect>

9、60;                           <Border.Background>                   &

10、#160;            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1.5">                        

11、60;           <GradientBrush.GradientStops>                                 

12、60;      <GradientStopCollection>                                       &#

13、160;    <GradientStop Color="Binding RelativeSource=RelativeSource TemplatedParent, Path=(Button.Background).(SolidColorBrush.Color)" Offset="0"/>                   

14、;                         <GradientStop Color="Binding RelativeSource=RelativeSource TemplatedParent, Path=(Button.Background).(SolidColorBrush.Color)" Offset="0.

15、4"/>                                            <GradientStop Color="

16、#FFF" Offset="1"/>                                        </GradientStopCollection&g

17、t;                                    </GradientBrush.GradientStops>        

18、60;                       </LinearGradientBrush>                      

19、0;     </Border.Background>                            <!-前景色及边框->           &

20、#160;                <Border x:Name="fore" BorderThickness="1" CornerRadius="3" BorderBrush="#5555">             &

21、#160;                  <Border.Background>                            

22、;        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">                             

23、60;          <GradientBrush.GradientStops>                                  

24、60;         <GradientStopCollection>                                    &#

25、160;           <GradientStop Color="#6FFF" Offset="0.5"/>                            

26、;                    <GradientStop Color="#1111" Offset="0.51"/>                   &

27、#160;                        </GradientStopCollection>                     

28、;                   </GradientBrush.GradientStops>                         

29、0;          </LinearGradientBrush>                                </Border.Background>&#

30、160;                               <!-按钮内容->                

31、0;               <ContentPresenter x:Name="content" HorizontalAlignment="Center" VerticalAlignment="Center" Content="TemplateBinding  Content">      

32、                              <ContentPresenter.BitmapEffect>              

33、0;                         <DropShadowBitmapEffect Color="#000" Direction="-90" ShadowDepth="2" Softness="0.1" Opacity="0.3" /&

34、gt;                                    </ContentPresenter.BitmapEffect>        

35、                        </ContentPresenter>                      

36、0;     </Border>                        </Border>                 &#

37、160;      <!-触发器->                        <ControlTemplate.Triggers>             &#

38、160;              <!-鼠标移入移出->                            <Trigger Property="IsMouseOve

39、r" Value="True">                                <Trigger.EnterActions>        

40、60;                           <BeginStoryboard>                   

41、60;                    <Storyboard>                           &#

42、160;                <DoubleAnimation To="6" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />&#

43、160;                                           <ColorAnimation To="#AFFF" Beg

44、inTime="0:0:0.2" Duration="0:0:0.2" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />              

45、                              <ColorAnimation To="#3FFF" BeginTime="0:0:0.2" Duration="0:0:0.2" Storyboard.TargetName=&quo

46、t;fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)1.(GradientStop.Color)" />                           

47、0;            </Storyboard>                                    &

48、lt;/BeginStoryboard>                                </Trigger.EnterActions>          &

49、#160;                     <Trigger.ExitActions>                        

50、60;           <BeginStoryboard>                                   

51、60;    <Storyboard>                                            &

52、lt;DoubleAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />                   &

53、#160;                        <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBr

54、ush.GradientStops)0.(GradientStop.Color)" />                                         &#

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

56、60;                          </Storyboard>                     &

57、#160;              </BeginStoryboard>                                </

58、Trigger.ExitActions>                            </Trigger>                &#

59、160;           <!-按钮按下弹起->                            <Trigger Property="IsPressed" Value="

60、True">                                <Trigger.EnterActions>            

61、;                        <BeginStoryboard>                       

62、;                 <Storyboard>                              

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

64、0;                                        <ColorAnimation To="#3AAA" Duration="0:0:0.1&

65、quot; Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />                      &#

66、160;                     <ColorAnimation To="#2111" Duration="0:0:0.1" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradient

67、Brush.GradientStops)1.(GradientStop.Color)" />                                        </Storyb

68、oard>                                    </BeginStoryboard>         

69、60;                      </Trigger.EnterActions>                       

70、60;        <Trigger.ExitActions>                                    <BeginStorybo

71、ard>                                        <Storyboard>      

72、0;                                     <DoubleAnimation Duration="0:0:0.1" Storyboard.TargetName="back

73、" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />                                

74、60;           <ColorAnimation Duration="0:0:0.1" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />    

75、0;                                       <ColorAnimation Duration="0:0:0.1" Storyboard.TargetName

76、="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)1.(GradientStop.Color)" />                           

77、;             </Storyboard>                                  

78、60; </BeginStoryboard>                                </Trigger.ExitActions>         

79、60;                  </Trigger>                            <!-按钮失效->

80、                            <Trigger Property="IsEnabled" Value="False">           &

81、#160;                    <Setter Property="Foreground" Value="#B444"/>                  &

82、#160;             <Trigger.EnterActions>                                &#

83、160;   <BeginStoryboard>                                        <Storyboard> &

84、#160;                                          <DoubleAnimation To="0" Duration=&q

85、uot;0:0:0.3" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />                        &

86、#160;                   <DoubleAnimation To="1" Duration="0:0:0.1" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBit

87、mapEffect.Opacity)" />                                            <DoubleA

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

89、                             <ColorAnimation To="#FFF" Duration="0:0:0.3" Storyboard.TargetName="content" Storyboard.TargetProp

90、erty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Color)" />                                    

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

92、                                  <ColorAnimation To="#CEEE" Duration="0:0:0.3" Storyboard.TargetName="fore

93、" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />                            

94、0;               <ColorAnimation To="#CDDD" Duration="0:0:0.3" Storyboard.TargetName="fore" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)1.(GradientStop.Co

95、lor)" />                                        </Storyboard>     

96、                               </BeginStoryboard>                

97、;                </Trigger.EnterActions>                              

98、;  <Trigger.ExitActions>                                    <BeginStoryboard>     &

99、#160;                                  <Storyboard>             

100、                               <DoubleAnimation Duration="0:0:0.1" Storyboard.TargetName="back" Storyboard.TargetProperty="

101、;(Border.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)" />                                       

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

103、60;                               <DoubleAnimation Duration="0:0:0.1" Storyboard.TargetName="content" Storyboard.TargetProperty="(ContentPresenter.BitmapEffect).(DropShadowBitmapEffect.Direction)" />&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论