Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1049209
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-04-18 21:05:57

 在上一遍文章中已经介绍到可以在Resources集合中定义样式,我们也可以在一个样式上引用其他的样式,这就是继承的概念,使用方法是将引用的样式放置在Style中的BaseOn属性;这里使用到的是xaml标记扩展进行设置,比如这里定义的三个样式:

 
        "tbStyle" TargetType="TextBlock">
            "HorizontalAlignment" Value="Center">
            "HorizontalAlignment" Value="Center">
            "Foreground">
                
                    
                        "0.2" Color="Brown">
                        "0.7" Color="DarkBlue">
                    

                

            
        
        "fStyle" TargetType="TextBlock">
            "VerticalAlignment" Value="Bottom">
        
        "tStyle" TargetType="TextBlock" BasedOn="{StaticResource tbStyle}">
            "VerticalAlignment" Value="Top">
        
    

 从上面代码中我们可以看到第三个样式继承了第一个样式,然后第一个样式中我们定义的垂直方向的位置,第三个也定义了垂直方向的位置,然后我们从textblock中使用第三个样式

 "tbContent" Text="显示样式"  Style="{StaticResource tStyle}"  />

 效果如下:

 

这说明第三个样式中的属性覆盖了第一个样式中的相同的属性 ;需要注意的是,上面三个样式是有先后顺序的,即下面的可以继承上面的,但是上面的不能继承下面的,系统会提示警告,找不到你要继承的样式;那么如果这三个样式中的样式进行级联继承会出现什么情况那:代码如下:

 


        "tbStyle" TargetType="TextBlock">
            "HorizontalAlignment" Value="Center">
            "HorizontalAlignment" Value="Center">
            "Foreground">
                
                    
                        "0.2" Color="Brown">
                        "0.7" Color="DarkBlue">
                    

                

            
        
        "tStyle" TargetType="TextBlock" BasedOn="{StaticResource tbStyle}">
            "VerticalAlignment" Value="Top">
            "HorizontalAlignment" Value="Left">
        
        "fStyle" TargetType="TextBlock" BasedOn="{StaticResource tStyle}">
            "VerticalAlignment" Value="Bottom">
        
       
    

 然后textblock使用第三个样式

 "tbContent" Text="显示样式"  Style="{StaticResource fStyle}"  />

 效果就是这样子了

 

 所以我们可以这样总结,定义三个或更多个样式,如A,B,C 如果B继承A,C继承B,那么优先级是C>B>A,也可以这么说样式的继承是越往上优先级越低;

 给大家贴两篇文章的链接,共勉:

 


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