首先我们看一段xaml代码

1 <TextBlock x:Name="ApplicationTitle" Text="BlendPro" Style="{StaticResource PhoneTextNormalStyle}"/>

在这里你可能注意带花括号设置了TextBlock的Style属性.这就意味着表达式在运行时进行了计算,属性被设置为计算后的值.本段xaml使用名为PhoneTextNormalStyle的StaticResource来设置Style属性.

而加载XAML时, StaticResource的解析是通过沿XAML树查找所有资源字典中的资源来完成的.如果在当前页面的任何位置都找不到时,则会查找位于App.xaml文件中的应用程序范围的资源字典.

资源字典仅是一个对象的集合,在应用程序中可以重复使用.在下面的代码片段中,可以看到两个在应用程序范围资源字典中定义资源:Color以及SolidColorBrush.每个XAML元素的x:key特性都声明了一个从代码中访问资源时所需的键.你还会注意到SolidColorBrush资源时间上引用了Color资源.这时资源的顺序很重要.如果先定义SolidColorBrush资源,当解析器定位时就会抛出一个未找到资源的异常.

1 <phone:PhoneApplicationPage.Resources>
2     <Color x:Key="ButtonBackColor">
3         #FFFF5C5C
4     </Color>
5     <SolidColorBrush x:Key="ButtonBackBrush" Color="{StaticResource ButtonBackColor}"/>
6 </phone:PhoneApplicationPage.Resources>

接着我们在来看一段XAML片段

1 <phone:PhoneApplicationPage.Resources>
2     <Style x:Key="MyBaseStyle" TargetType="TextBlock">
3         <Setter Property="Foreground" Value="{StaticResource PhoneFontFamilySemiLight}"/>
4         <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeLarge}"/>
5     </Style>
6     <Style x:Key="MyTextBlockStyle" TargetType="TextBlock" BasedOn="{StaticResource MyBaseStyle}">
7         <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
8     </Style>
9 </phone:PhoneApplicationPage.Resources>

你会注意到其中定义了一个TargetType特性,它用来确定可以应用该Style的控件类型.在本片段中被定义为应用所有TextBlock控件. Style还可以继承其他的Style.上面片段中使用BasedOn属性继承了名为MyBaseStyle的Style,得到MyBaseStyle中Foreground和FontSize并使用自己定义的Foreground覆盖父类属性.

转载于:https://www.cnblogs.com/qq278360339/archive/2012/05/17/2506960.html

如何使用资源和样式调整控件外观相关推荐

  1. wpf教程-metro扁平化样式UI控件库推荐:MahApps.Metro

    wpf虽然做出来的ui效果已经很好了,但是还是会有很多客户要求在完善.不如在win8出来后,很多用户就喜欢metro的样式. 今天给大家推荐metro扁平化样式UI控件库:MahApps.Metro ...

  2. Windows Phone开发(16):样式和控件模板

    在前面资源一文中也提过样式,样式就如同我们做HTML页排版时常用到的CSS样式表,它是对于特定娄型的可视化元素,应该可以直接说是针对控件的一种可重用的属性设置列表,这样对于需要设置相同属性值的同类型的 ...

  3. Windows Phone开发(16):样式和控件模板 转:http://blog.csdn.net/tcjiaan/article/details/7367260...

    在前面资源一文中也提过样式,样式就如同我们做HTML页排版时常用到的CSS样式表,它是对于特定娄型的可视化元素,应该可以直接说是针对控件的一种可重用的属性设置列表,这样对于需要设置相同属性值的同类型的 ...

  4. Silverlight 属性样式、控件模板、视觉状态

    在使用Silverlight的样式的时候感觉非常好,以前在HTML上很难实现的效果在这里都变的如此简单. 属性样式 控件的属性样式好比CSS的Class功能定义,是用来统一定义和维护控件属性的方式,控 ...

  5. 非存储过程分页- 前台分页样式和控件

    非存储过程分页- 前台分页样式和控件 一.   DAL /// ///分页sql /// public DataTable GetUserAndError(int pageSize, int page ...

  6. 在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以

    在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以? // ------------------------------ vc2005 ------------- ...

  7. 组件开发之ASP.NET中集成资源文件的服务器端控件开发

    一个ASP.net中的控件,往往要使用到一些图片.CSS和脚本JS文件等等,如果要求用户把这些资源文件自己复制到网站目录中,往往让人感觉很麻烦很不专业.如果能够在控件中包含这些资源,能够自动引用,不单 ...

  8. 在 Visual Basic 6 中让用户在运行时移动和调整控件大小

      标题 在 Visual Basic 6 中让用户在运行时移动和调整控件大小 描述 此示例说明如何让用户在 Visual Basic 6 中在运行时移动控件和调整控件大小. 关键词 拖动.移动.调整 ...

  9. windows常见窗口样式和控件风格以及类样式

    Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW 子窗口(不能与WS_P ...

最新文章

  1. Tricks(四十九)—— 按 batch 访问越界的解决办法
  2. Go加密解密之DES
  3. MKNetWorkKit打印URL
  4. GCN代码超详解析Two-stream adaptive graph convolutional network for Skeleton-Based Action Recognition(三)
  5. 成功解决tensorflow\contrib\learn\python\learn\datasets\base._internal_retry.locals.wrap.locals.wrapp
  6. nodejs redis 过期时间_别在为Redis面试而烦恼了?看完暴答【面试管】
  7. java代码着色_给java代码着色源码
  8. 玩转 SpringBoot 2 快速整合 Filter 注解版
  9. 微软9月补丁星期二值得关注的0day、终于落幕的 PrintNightmare及其它
  10. 图片没有.png或者jpg后缀能不能加载?
  11. WinForm开发知识汇总
  12. 用国家简写查找对应的国家名称和所在 洲
  13. ZooKeeper典型应用场景
  14. 编程人员的不二之选 LEGION Y9000X正式发布
  15. bzoj2037 Sue的小球(区间dp,考虑到对未来的贡献)
  16. android手机rom物理存储器,手机ROM/RAM的区别
  17. 手机app支付宝支付和苹果支付分析
  18. iOS 聊天表情键盘
  19. [转] Attach、Detach和DeleteObject
  20. 资料 | 美图区域链白皮书(附PDF链接)

热门文章

  1. Django之forms组件
  2. 使用 Artifactory 1分钟搭建 CocoaPod 私服
  3. 树莓派安装oepncv3.43
  4. 银行启动开放战略,能否赢回金融科技下半场?
  5. HTML5 手机端动态适配
  6. MySQL------MySQL与SQLServer数据类型的转换
  7. ORACLE 10g 数据库体系结构图
  8. 心累了,就笑一笑,学会爱自己
  9. Html5 学习系列(一)认识HTML5
  10. [转]总不能一辈子做助理