当前位置: 首页 > news >正文

windows phone 7 中怎样定义和使用资源(Resource)

1. 系统资源。

在wp7开发中可以看到很多使用系统资源(resource)的例子,例如默认的新page:

 http://blog.csdn.net/matrixcl/article/details/7057291 (转)

[html]  view plain copy
 
  1. <span style="font-size:18px;"><TextBlock x:Name="PageTitle" Text="PageTitle" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/></span>  

 

这里的PhoneTextTitle1Style便是资源。

系统的资源定义在这里:C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Design , 根据安装路径不同,这个路径有一些差异。

这个路径下有DarkBlue、DarkBrown、LightBlue等文件夹,分别对应手机上选定的主题色+高亮色。

DarkBlue为例,.\DarkBlue\ThemeResources.xaml 中PhoneTextTitle1Style是这样定义的:

 

[html]  view plain copy
 
  1. <span style="font-size:18px;"><Style x:Key="PhoneTextTitle1Style" TargetType="TextBlock" BasedOn="{StaticResource PhoneTextBlockBase}">  
  2.   <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>  
  3.   <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeExtraExtraLarge}"/>  
  4. </Style>  
  5. </span>  

PhoneFontFamilySemiLight 和 PhoneFontSizeLarge 的定义

[html]  view plain copy
 
  1. <span style="font-size:18px;"><FontFamily x:Key="PhoneFontFamilySemiLight">Segoe WP SemiLight</FontFamily>  
  2. </span>  
[html]  view plain copy
 
  1. <span style="font-size:18px;"><System:Double x:Key="PhoneFontSizeExtraExtraLarge">72</System:Double></span>  



 

2. 自定义资源

 

资源可以定义在3个地方:Page.xaml, App.xaml 及单独的资源辞典文件中。

3个地方定义没什么差别,这是使用时存在细微差别。

以页面中定义为例子:

 

[html]  view plain copy
 
  1. <span style="font-size:18px;">    <phone:PhoneApplicationPage.Resources>  
  2.         <Color x:Key="myForce" >Red</Color>  
  3.         <Color x:Key="myBack" >GreenYellow</Color>  
  4.         <system:String x:Key="myString" >12345</system:String>  
  5.         <SolidColorBrush x:Key="myForceBrush" Color="Orange" />  
  6.         <SolidColorBrush x:Key="myBackBrush" Color="{StaticResource myBack}" />  
  7.     </phone:PhoneApplicationPage.Resources></span>  


system是命名空间,要使用它需要在前面加上一行

 

 

[html]  view plain copy
 
  1. <span style="font-size:18px;">    xmlns:system="clr-namespace:System;assembly=mscorlib"  
  2. </span>  


 

3. Xaml中使用资源

 

 

[html]  view plain copy
 
  1. <span style="font-size:18px;"><TextBlock x:Name="ApplicationTitle" Text="{StaticResource myString}" Foreground="{StaticResource myForceBrush}" Style="{StaticResource PhoneTextNormalStyle}"/></span>  

 

 

4. MainPage.Xaml.cs文件中使用资源

[csharp]  view plain copy
 
  1. <span style="font-size:18px;"if (this.ApplicationBar == null)  
  2.  {  
  3.      this.ApplicationBar = new ApplicationBar();  
  4.      this.ApplicationBar.MenuItems.Add(new ApplicationBarMenuItem() { Text = "Menu1" });  
  5.  }  
  6.   
  7.  this.ApplicationBar.BackgroundColor = (Color)this.Resources["myBack"];  
  8.  this.ApplicationBar.ForegroundColor = (Color)Application.Current.Resources["PhoneAccentColor"];</span>  

其实"PhoneAccentColor"可以通过this.Resources 加载到,但反之不行,因为资源"myBack"是定义在Page中的,Application类中不可见

 

[csharp]  view plain copy
 
    1. <span style="font-size:18px;">this.ApplicationBar.ForegroundColor = (Color)this.Resources["PhoneAccentColor"];</span>  

转载于:https://www.cnblogs.com/CharlesGrant/p/3639305.html

相关文章:

  • Scrum丰田之道
  • 一步步学习微软InfoPath2010和SP2010--第十四章节--高级选项(9)--高级函数
  • vue+webpack 在引入图片以及在img引用变量名的本地图片报错
  • android选择图片或拍照图片上传到服务器(包括上传参数) (转)
  • 你应该了解的大数据10个新趋势
  • js编写倒计时-距离开始时间距离结束时间-结束
  • in, out, ref
  • 以太坊 ERC223 标准与 ERC20 的区别是什么?
  • 7、请求参数接收
  • iPhone的指纹识别与面部识别(FaceID)
  • 状态模式与外观模式的碰撞
  • 【hdoj】1358 Period【字符串--最小循环节 i/next[i]即为其长度】
  • Cracking The Coding Interview 3.6
  • 爬虫原理与数据抓取----- urllib2:GET请求和POST请求
  • 算法导论读书笔记(2)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Invalidate和postInvalidate的区别
  • js
  • JS题目及答案整理
  • Laravel Telescope:优雅的应用调试工具
  • mysql innodb 索引使用指南
  • Netty源码解析1-Buffer
  • Odoo domain写法及运用
  • PHP那些事儿
  • Redux系列x:源码分析
  • Vue官网教程学习过程中值得记录的一些事情
  • 回顾 Swift 多平台移植进度 #2
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 理清楚Vue的结构
  • 如何合理的规划jvm性能调优
  • 使用 @font-face
  • 通过git安装npm私有模块
  • 优秀架构师必须掌握的架构思维
  • 字符串匹配基础上
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​第20课 在Android Native开发中加入新的C++类
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #include<初见C语言之指针(5)>
  • (09)Hive——CTE 公共表达式
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)jdk与jre的区别
  • (转)jQuery 基础
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .Net Web项目创建比较不错的参考文章
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • @Service注解让spring找到你的Service bean
  • [BT]BUUCTF刷题第9天(3.27)
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)