windows phone (13) 样式继承

原文:windows phone (13) 样式继承

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

 <phone:PhoneApplicationPage.Resources>
        <Style x:Key="tbStyle" TargetType="TextBlock">
            <Setter Property="HorizontalAlignment" Value="Center"></Setter>
            <Setter Property="HorizontalAlignment" Value="Center"></Setter>
            <Setter Property="Foreground">
                <Setter.Value>
                    <LinearGradientBrush>
                        <GradientStop Offset="0.2" Color="Brown"></GradientStop>
                        <GradientStop Offset="0.7" Color="DarkBlue"></GradientStop>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="fStyle" TargetType="TextBlock">
            <Setter Property="VerticalAlignment" Value="Bottom"></Setter>
        </Style>
        <Style x:Key="tStyle" TargetType="TextBlock" BasedOn="{StaticResource tbStyle}">
            <Setter Property="VerticalAlignment" Value="Top"></Setter>
        </Style>
    </phone:PhoneApplicationPage.Resources>

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

 <TextBlock x:Name="tbContent" Text="显示样式"  Style="{StaticResource tStyle}"  />

 效果如下:

 

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

 

<phone:PhoneApplicationPage.Resources>
        <Style x:Key="tbStyle" TargetType="TextBlock">
            <Setter Property="HorizontalAlignment" Value="Center"></Setter>
            <Setter Property="HorizontalAlignment" Value="Center"></Setter>
            <Setter Property="Foreground">
                <Setter.Value>
                    <LinearGradientBrush>
                        <GradientStop Offset="0.2" Color="Brown"></GradientStop>
                        <GradientStop Offset="0.7" Color="DarkBlue"></GradientStop>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="tStyle" TargetType="TextBlock" BasedOn="{StaticResource tbStyle}">
            <Setter Property="VerticalAlignment" Value="Top"></Setter>
            <Setter Property="HorizontalAlignment" Value="Left"></Setter>
        </Style>
        <Style x:Key="fStyle" TargetType="TextBlock" BasedOn="{StaticResource tStyle}">
            <Setter Property="VerticalAlignment" Value="Bottom"></Setter>
        </Style>
       
    </phone:PhoneApplicationPage.Resources>

 然后textblock使用第三个样式

 <TextBlock x:Name="tbContent" Text="显示样式"  Style="{StaticResource fStyle}"  />

 效果就是这样子了

 

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



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

 

WP7开发学习(4):Style样式的四种使用----在wp中对样式的总结

 

WPF中的依赖项属性----依赖项属性终于明白了

 

 

 

 

时间: 2024-11-05 18:44:17

windows phone (13) 样式继承的相关文章

背水一战 Windows 10 (13) - 绘图: Stroke, Brush

原文:背水一战 Windows 10 (13) - 绘图: Stroke, Brush [源码下载] 背水一战 Windows 10 (13) - 绘图: Stroke, Brush 作者:webabcd 介绍背水一战 Windows 10 之 绘图 Stroke - 笔划 Brush - 画笔 示例1.演示"Stroke"相关知识点Drawing/Stroke.xaml <Page x:Class="Windows10.Drawing.Stroke" xml

与众不同 windows phone (13) - Background Task(后台任务)之后台文件传输(上传和下载)

原文:与众不同 windows phone (13) - Background Task(后台任务)之后台文件传输(上传和下载) [索引页][源码下载] 与众不同 windows phone (13) - Background Task(后台任务)之后台文件传输(上传和下载) 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之后台任务 后台文件传输(下载) 后台文件传输(上传) 示例1.演示如何实现后台文件传输(下载)BackgroundTransfe

《Spring攻略(第2版)》——1.13 继承Bean配置

1.13 继承Bean配置 1.13.1 问题在Spring IoC容器中配置Bean时,你可能拥有超过一个共享某些公用配置的Bean,比如属性和元素中的属性.你常常必须为多个Bean重复这些配置. 1.13.2 解决方案Spring允许你提取公用的Bean配置组成一个父Bean.从父Bean继承而来的Bean称作子Bean.子Bean从父Bean继承Bean配置,包括Bean属性和元素中的属性,避免重复配置.子Bean在必要时也可以覆盖继承的配置. 父Bean可以作为配置模板,也可以同时作为B

Git for Windows 2.13.1(2) 发布,分布式版本控制系统

Git for Windows 2.13.1(2) 已发布,这是一个针对 2.13.1 的补充版本: git commit 和 git status 不再随机抛出分段错误. 详情和下载地址可查看发行主页 Git for Windows 2.13.1 带来了许多新特性: 集成 Git v2.13.1. 集成 Git Credential Manager v1.10.0. 集成 OpenSSH 7.5p1. 集成 Git Flow v1.11.0. 集成 Git LFS v2.1.1. Git 现在

Windows Media Player 11 for Windows XP (13/3/07) 中英文版下载_常用工具

Windows Media Player 11 for Windows XP 为数字媒体提供无以伦比的选择和灵活性.使用它可以轻松管理计算机上的数字音乐库.数字照片库和数字视频库,并可以将它们同步到各种便携设备上,以便您可以随时随地欣赏它们. 仅限英文版更新,发布日期为3/13/2007.中文版仍然是2007/1/15  英文版下载页面http://www.microsoft.com/downloads/details.aspx?familyid=1d224714-e238-4e45-8668-

C++程序设计-第13周 继承与派生(二)

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [目的] 1. 进一步掌握类的派生与继承的概念.应用方法2. 掌握继承方式对成员访问权限的影响3. 掌握虚基类的用法 第三部分 实践项目[项目1]理解基类中成员的访问限定符和派生类的继承方式由下面派生类StudentB对基类StudentA的继承-- #include <iostream> using namespace std; class StudentA //(1

Windows Server 2003更改继承的权限设置

Active Directory提供了一系列集中组织 管理和访问网络资源的目录服务功能.Active Directory使网络拓扑和协议对用户变得透明,从而使网络上的用户可以访问任何资源(例如打印机),而无需知道该资源的位置以及它是如何连接到网络的.&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; Active Directory被划分成区域进行管理,这使其可以存储大量的对象.基于这种结构,Active Direc

与众不同windows phone (13)

Background Task(后台任务)之后台文件传输(上传和下载) 介绍 与众不同 windows phone 7.5 (sdk 7.1) 之后台任务 后台文件传输(下载) 后台文件传输(上传) 示例 1.演示如何实现后台文件传输(下载) BackgroundTransferDownload.xaml <phone:PhoneApplicationPage x:Class="Demo.BackgroundTask.BackgroundTransferDownload" xml

仿windows工具条样式_CSS/HTML

   防菜单条样式 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]