码迷,mamicode.com
首页 > 其他好文 > 详细

十,样式和行为

时间:2014-08-12 00:21:03      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   io   strong   for   

  1. 样式(Styles)是组织和重用格式化选项的重要工具。不是使用重复的标记填充XAML,以设置诸如边距、颜色及字体等细节,而可以创建一系列封装所有这些细节的样式。然后可以在需要之处通过一个属性应用样式。
    行为(behavior)是一个重用用户界面代码的工具,它封装了一些通用的UI功能。如果具有适当的行为,可以使用一两行XAML标记将其附加到一个元素,从而可以节省编写和调试代码的工作。
  2. 创建样式对象
    <Window.Resources>
        <Style x:Key="BigFontButtonStyle">
            <Setter Property="Control.FontFamily" Value="Times New Roman"></Setter>
            <Setter Property="Control.FontSize" Value="20"></Setter>
            <Setter Property="Control.FontWeight" Value="Bold"></Setter>
        </Style>
    </Window.Resources>

    上面的标记创建了一个独立的资源:一个System.Windows.Style对象,与所有资源一样,样式对象有一个键名,从而当需要时可以从集合中提取它,根据约定,用于样式的键名通常以Style结尾。样式通过元素的Style属性(该属性是在FrameworkElement基类中定义的)插入到元素中,如下所示为按钮使用了以上定义的样式:

    <Button Style="{StaticResource BigFontButtonStyle}">A Button For My Test</Button>

    也可以使用代码设置样式,就是使用FindResources()方法从最近的资源集合中提取样式:

    btnStyleTest1.Style = (Style)btnStyleTest1.FindResource("BigFontButtonStyle");

    样式设置元素的初始外观,但是可以随意覆盖它们设置的这些特性。例如,如果应用了BigFontButtonStyle样式,并且明确地设置了FontSize属性,则在按钮中的FindSize设置就会覆盖样式。
    Setters集合是Style类中最重要的属性,但并不是唯一的属性,在Style类中共有5个重要属性:
    bubuko.com,布布扣

  3. 设置样式属性
    每个Style对象包装了一个Setter对象的集合,每个Setter对象设置元素的单个属性。唯一的限制是设置器只能改变依赖项属性而不能修改其它属性。
    在某些情况下,不能使用简单的特性字符串设置属性值,此时可以使用嵌套的属性元素代替特性,如下是一个示例:

    <Window.Resources>
        <Style x:Key="HappyFaceTileStyle">
            <Setter Property="Control.Background">
                <Setter.Value>
                    <ImageBrush ImageSource="images/happyface.jpg" ViewportUnits="Absolute" Viewport="0,0,32,32" TileMode="Tile"></ImageBrush>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

    如果希望在多个样式中(或在同一样式的多个设置器中)重用相同的图像画刷,可以将其定义为资源,然后再在样式中使用资源:

    <Window.Resources> 
        <ImageBrush x:Key="happyFace" ImageSource="images/happyface.jpg" ViewportUnits="Absolute" Viewport="0,0,32,32" TileMode="Tile"/> 
        <Style x:Key="HappyFaceTileStyle"> 
            <Setter Property="Control.Background" Value="{StaticResource happyFace}"></Setter> 
        </Style> 
    </Window.Resources>

    为了标识希望设置的属性,需要设置类和属性的名称,然而,类名不必是定义属性的类名,也可以是继承了属性的派生类,如下示例,它使用Button类的引用代替了Control类的引用:

    <Style x:Key="BigFontButtonStyle"> 
        <Setter Property="Button.FontFamily" Value="Times New Roman"></Setter> 
        <Setter Property="Button.FontSize" Value="20"></Setter> 
        <Setter Property="Button.FontWeight" Value="Bold"></Setter>        
    </Style>

     



十,样式和行为,布布扣,bubuko.com

十,样式和行为

标签:style   blog   http   color   使用   io   strong   for   

原文地址:http://www.cnblogs.com/jiao1855/p/3905797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!