Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12484078
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: C#/.net

2015-12-08 17:19:14

转自博客:   
http://blog.csdn.net/liusanchun/article/details/6857558

    Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了大量的复杂属性的设置。

   在WPF中,设置外观样式我们有很多种方式,比如通过设置控件的属性来控制控件的外观样式;或者通过在每一个控件中分别设置Style;或者通过在整个Window.Resource中设置Style,又或者在App.xaml的Application.Resource设置Style。
   在此我们就不讨论第一种方式设置控件的外观了,因为这不涉及到Style的使用。那么后三种设置样式来控制控件的外观有什么区别呢?那么我们来分别讨论吧!
方法一、
通过在每一个控件中分别设置Style来控制控件的外观。
示例代码如下:

  1. <Button Content="Button" Height="23" Name="button3" Width="75">
  2.                 <Button.Style>
  3.                     <Style TargetType="Button">
  4.                         <Setter Property="Background" Value="Black" />
  5.                     </Style>
  6.                 </Button.Style>
  7.             </Button>
以上样式的设置只正对当前的Button有效,与其他同种类型的控件无关。

 方法二、通过在Window.Resource中设置Style来控制控件的外观。
推荐使用方法二。

示例代码如下:

  1. <Window.Resources>
  2.         <Style TargetType="Button">
  3.             <Setter Property="Background" Value="LightBlue" />
  4.         </Style>
  5.     </Window.Resources>
    以上样式的设置,针对整个Window的所有Button有效(只要没有单独的对Button设置),这种方法呢,相对于第一种来说减少了代码量。同时修改起来出错的可能性较小!

方法三,通过在App.xaml中的Application.Resource中设置Style来控制控件的外观。
示例代码如下:

  1. <Application.Resource>
  2. <Style TargetType="Button">
  3.             <Setter Property="FontFamily" Value="MS Reference Sans Serif" />
  4.             <Setter Property="Background">
  5.                 <Setter.Value>
  6.                     <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
  7.                         <GradientStop Color="White" Offset="0"/>
  8.                         <GradientStop Color="SkyBlue" Offset="0.2"/>
  9.                         <GradientStop Color="SkyBlue" Offset="0.8"/>
  10.                         <GradientStop Color="White" Offset="1"/>
  11.                     </LinearGradientBrush>
  12.                 </Setter.Value>
  13.             </Setter>
  14.         </Style>
  15. </Application.Resource>
    以上样式的设置,针对整个Application的所有Button有效(只要在Window.Resource或者独立的Button中没有分别设置),这种方法来设置控件的外观样式呢,相对于前两种来说,代码量有大幅的增加,同时呢,在一个应用程序中,往往同种类型的控件的很多属性都是相同的,我们在Applicaiton.Resource进行全局设置,使其维护更加方便!
  好了,以上是我对WPF中Style的理解,希望在我总结的同时,能够给同行们提供帮助,如果发现错误,请积极指正,谢谢!

                       
                   
                       
                   
阅读(2758) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~