Windows Phone 7 定义和使用字典资源(ResourceDictionary)

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
简介:

1、首先需要创建一个资源字典的文件,也就是一个xaml的文件。

文件的语法格式如下

Test.xaml

 

 
  1. <ResourceDictionary 
  2.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  4.  
  5.     xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
  6.     xmlns:visualizationToolkit="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"> 
  7.  
  8. <!--定义样式资源--> 
  9.  <Style x:Key="TextBlockStyle1" TargetType="TextBlock"> 
  10.   <Setter Property="Foreground" Value="Orange"/> 
  11.   <Setter  Property="FontSize" Value="24"/> 
  12.   <Setter  Property="VerticalAlignment" Value="Bottom"/> 
  13.  </Style> 
  14.  
  15. <!--定义数据模板资源--> 
  16.  
  17. <DataTemplate x:Key="cityDetails"> 
  18.   <Grid> 
  19.    <Grid.ColumnDefinitions> 
  20.     <ColumnDefinition Width="Auto" /> 
  21.     <ColumnDefinition Width="90" /> 
  22.    </Grid.ColumnDefinitions> 
  23.    <Grid.RowDefinitions> 
  24.     <RowDefinition /> 
  25.     <RowDefinition /> 
  26.    </Grid.RowDefinitions> 
  27.    <TextBlock Text="Activity: " 
  28.     Grid.Column="0" 
  29.     Grid.Row="0" 
  30.     Style="{StaticResource detailsSmallTitle}" /> 
  31.    <TextBlock Text="{Binding Activity}" 
  32.     Grid.Column="1" 
  33.     Grid.Row="0" 
  34.     Style="{StaticResource detailsSmallText}" /> 
  35.    ……  
  36.  
  37.   </Grid> 
  38.  </DataTemplate> 
  39.  
  40. <!--定义控件模板资源--> 
  41.  
  42.  <ControlTemplate x:Key="ControlTemplateTest" 
  43.                      TargetType="chartingToolkit:Chart"> 
  44.         <Grid> 
  45.             <Grid.ColumnDefinitions> 
  46.                 <ColumnDefinition Width="*" /> 
  47.                 <ColumnDefinition Width="Auto" /> 
  48.             </Grid.ColumnDefinitions> 
  49.             <Grid.RowDefinitions> 
  50.                 <RowDefinition Height="Auto" /> 
  51.                 <RowDefinition Height="*" /> 
  52.             </Grid.RowDefinitions> 
  53.             <visualizationToolkit:Title Grid.ColumnSpan="2" 
  54.                                         Content="{TemplateBinding Title}" 
  55.                                         Style="{TemplateBinding TitleStyle}" /> 
  56.                   ……  
  57.  
  58.         </Grid> 
  59.     </ControlTemplate> 
  60. </ResourceDictionary> 

Style的x:Key属性是资源字典里面的资源的唯一的标示符,也是作为在其他页面调用的一个唯一的Key来进行调用。

2、调用资源资源中的资源

在MainPage.xaml页面中添加资源字典,语法如下

 

 
  1. <phone:PhoneApplicationPage.Resources> 
  2.   <ResourceDictionary> 
  3.    <ResourceDictionary.MergedDictionaries> 
  4.     <ResourceDictionary Source="Test.xaml"/> 
  5.    </ResourceDictionary.MergedDictionaries> 
  6.   </ResourceDictionary> 
  7.  </phone:PhoneApplicationPage.Resources> 

ResourceDictionary.MergedDictionaries 获取 ResourceDictionary 字典的集合,这些字典构成了合并字典中的各种资源字典。

如果想在程序启动时加载所有的资源,可以再App.xaml页面上添加资源的加载,语法如下

 

 
  1. <Application 
  2.     x:Class="DataVisualizationOnWindowsPhone.App" 
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  5.     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"> 
  6.  
  7.  
  8.  
  9.     <Application.Resources> 
  10.         <!-- 添加资源 --> 
  11.         <ResourceDictionary> 
  12.             <ResourceDictionary.MergedDictionaries> 
  13.                 <ResourceDictionary Source="Test.xaml"/> 
  14.             </ResourceDictionary.MergedDictionaries> 
  15.         </ResourceDictionary> 
  16.     </Application.Resources> 
  17.  
  18. ……  
  19.  
  20. </Application> 

3、使用字典资源中的资源

在MainPage.xaml页面中的控件调用自定义的资源,语法如下

调用字典资源中x:Key值为TextBlockStyle1的样式资源

 <StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
   
<TextBlock Text="Some Text" Style="{StaticResource TextBlockStyle1}"/>
  
</StackPanel>

调用字典资源中x:Key值为cityDetails的数据模板资源

  <ContentControl ContentTemplate="{StaticResource cityDetails}"
                                        HorizontalAlignment
="Left"
                                        x:Name
="DetailsControl" Margin="0,0,0,5" />

调用字典资源中x:Key值为ControlTemplateTest的控件模板资源

 

 
  1. <charting:Chart x:Name="myChart" 
  2.                                     Style="{StaticResource PhoneChartStyle}" 
  3.                                     Template="{StaticResource ControlTemplateTest}"> 
  4.  
  5. ……  
  6.  
  7. </charting:Chart> 

也可以在cs页面调用字典资源,语法如下

 ControlTemplate template;

template 
= Application.Current.Resources["ControlTemplateTest"as ControlTemplate;

myChart.Template 
= template;

更多的介绍请参考MSDN的Silverlight资源字典介绍

MSDN的Silverlight资源字典详细介绍

http://msdn.microsoft.com/zh-cn/library/cc903952(v=VS.95).aspx


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1078682

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
|
5月前
|
存储 Linux 数据中心
【Azure 环境】在Windows系统中 使用Terraform创建中国区Azure资源步骤(入门级)
【Azure 环境】在Windows系统中 使用Terraform创建中国区Azure资源步骤(入门级)
|
6月前
|
NoSQL Redis Windows
redis双击闪退解决方法,windows版的redis资源,redis安装,win资源可下
redis双击闪退解决方法,windows版的redis资源,redis安装,win资源可下
|
8月前
|
Shell Windows
Windows【工具 03】QuickLook-3.6.11安装并设置开机自启动(含较难下载的 QuickLook-3.6.11 安装包百度云盘资源)
Windows【工具 03】QuickLook-3.6.11安装并设置开机自启动(含较难下载的 QuickLook-3.6.11 安装包百度云盘资源)
223 0
|
8月前
|
Java
Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
876 0
|
8月前
|
存储 数据可视化 数据库
InfluxData【付诸实践 01】Windows环境部署Telegraf+Influxdb+Grafana安装及使用配置(含百度云盘资源+demo脚本)
InfluxData【付诸实践 01】Windows环境部署Telegraf+Influxdb+Grafana安装及使用配置(含百度云盘资源+demo脚本)
218 0
|
Ubuntu 固态存储 Linux
系统类配置(一)【安装windows10与ubuntu16.04双系统-附镜像资源】
系统类配置(一)【安装windows10与ubuntu16.04双系统-附镜像资源】
186 0
|
存储 资源调度 索引
【windows批处理batch】.bat文件 字符串处理相关操作(字符串定义、分割、拼接、替换、切片、查找)
【windows批处理batch】.bat文件 字符串处理相关操作(字符串定义、分割、拼接、替换、切片、查找)
1413 0
|
数据可视化 Windows
Windows编程资源,菜单资源,图标资源,光标资源,上下文菜单,字符串资源,加速键资源(下)
Windows编程资源,菜单资源,图标资源,光标资源,上下文菜单,字符串资源,加速键资源(下)
|
数据可视化 编译器 Windows
Windows编程资源,菜单资源,图标资源,光标资源,上下文菜单,字符串资源,加速键资源(上)
Windows编程资源,菜单资源,图标资源,光标资源,上下文菜单,字符串资源,加速键资源
|
Windows
Windows应急响应-异常资源
端口 检查端口连接情况,是否有远程连接、可疑连接。 检查方法 1. 使用`netstat -ano` 命令查看目前的网络连接,定位可疑的 ESTABLISHED 2. 根据 netstat 命令定位出的 PID 编号,再通过 tasklist 命令进行进程定位 `tasklist | findstr "PID"`
130 0