Windows Phone开发(15):资源
活字印刷术是我国“四大发明”之一,毕昇在发明活字印刷术之后,他很快发现一个问题,随着要印刷资料的不断增加,要用到的汉字数目越来越多,于是,他必须寻找一种有效的办法去管理那些刻有汉字的立方体(暂且就叫立方体,其实的确是个立方体),所以,他就和助手们一起努力,为这些立方体进行记录,有标识地放好,在印刷过程中用到哪些字,就直接取出来,不用了就放回去,既环保又方便。
这就是资源,水、空气、阳光也是资源,煤、铁矿物也是资源,只不过有些可再生,有些不可再生罢了。
何为资源?资源就是客观存在的,当我们需要时可以拿来利用的一切可支配或可重新组合的东西,如人力资源、人脉资源等。
如果做过网页,应该了解CSS是用来干啥的,其实,我们今天要讨论的资源,和CSS样式表的概念基本一样,就是把一些经常用到的东西保存起来,可以供应用程序中不同地方重复调用,这样我们就不用为每个控件设置样式,我们可以样式保存到资源列表,用到就取出来,不用重复定义。
下面看看这段XAML,上面有4个TextBlock,我现在希望每个TextBlock的字体字号为37.5,当然,简单的值可以方便设置,如果值很复杂,如上一篇文章说的模板,那你就很痛苦了,要为每个控件做一个模板。
<StackPanel Orientation="Vertical">
<TextBlock Text="第一块文本"/>
<TextBlock Text="第二块文本"/>
<TextBlock Text="第三块文本"/>
<TextBlock Text="第四块文本"/>
</StackPanel>
怎么做呢?因为字号为Double类型,所以首先要引入命名空间。怎么做呢?因为字号为Double类型,所以首先要引入命名空间。
xmlns:sys="clr-namespace:System;assembly=mscorlib"
接着,在页资源集合中定义一个字号资源,注意要设置key,每个资源都有唯一的键,应用程序是通过这个键来寻找对应的资源的。接着,在页资源集合中定义一个字号资源,注意要设置key,每个资源都有唯一的键,应用程序是通过这个键来寻找对应的资源的。
<StackPanel Orientation="Vertical">
<TextBlock Text="第一块文本" FontSize="{StaticResource fontSize}" />
<TextBlock Text="第二块文本" FontSize="{StaticResource fontSize}" />
<TextBlock Text="第三块文本" FontSize="{StaticResource fontSize}" />
<TextBlock Text="第四块文本" FontSize="{StaticResource fontSize}" />
</StackPanel>
资源的引用方式很简单,放到一对大括号中(扩展标记),StaticResource是指明是静态资源,注意,在Silverlight中只能用静态资源,如果是WPF,还有动态资源,空格后面就是资源的key,不要问我为什么。
再看一例,有三个按钮,我希望它们都拥有渐变背景色,水平左对齐,垂直顶端对齐,宽185,高50.
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Content="按钮一" Height="72" Margin="10,10,0,0" Name="button1" />
<Button Content="按钮二" Height="72" Margin="10,92,0,0" Name="button2" />
<Button Content="按钮三" Height="72" Margin="10,174,0,0" Name="button3" />
</Grid>
现在我只要在资源集合里声明一个样式,并把它应用到每个按钮上。
<phone:PhoneApplicationPage
x:Class="ResSampleApp.Page2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
shell:SystemTray.IsVisible="True">
<phone:PhoneApplicationPage.Resources>
<Style x:Key="buttonStyle" TargetType="Button">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="Yellow" Offset="0"/>
<GradientStop Color="Red" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Width" Value="185"/>
<Setter Property="Height" Value="50"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
</phone:PhoneApplicationPage.Resources> <Grid>
<Button Content="按钮一" Height="72" Margin="10,10,0,0" Name="button1" Style="{StaticResource buttonStyle}" />
<Button Content="按钮二" Height="72" Margin="10,92,0,0" Name="button2" Style="{StaticResource buttonStyle}" />
<Button Content="按钮三" Height="72" Margin="10,174,0,0" Name="button3" Style="{StaticResource buttonStyle}" />
</Grid> </phone:PhoneApplicationPage>

Windows Phone开发(15):资源的更多相关文章
- Kinect for Windows SDK开发入门(15):进阶指引 下
Kinect for Windows SDK开发入门(十五):进阶指引 下 上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun K ...
- Kinect for Windows SDK开发学习相关资源
Kinect for Windows SDK(K4W)将Kinect的体感操作带到了平常的应用学习中,提供了一种不同于传统的鼠标,键盘及触摸的无接触的交互方式,在某种程度上实现了自然交互界面的理想,即 ...
- windows 8 metro 开发学习资源链接
原文 http://www.cnblogs.com/icuit/archive/2012/05/30/2525979.html windows8 metro开发资源目前还是以MSDN为主,做了一个li ...
- Windows Phone开发(36):动画之DoubleAnimation
原文:Windows Phone开发(36):动画之DoubleAnimation 从本节开始,我们将围绕一个有趣的话题展开讨论--动画. 看到动画一词,你一定想到Flash,毕竟WP应用的一个很重要 ...
- Windows内核开发-3-内核编程基础
Windows内核开发-3-内核编程基础 这里会深入讲解kernel内核的API.结构体.和一些定义.考察代码在内核驱动中运行的机制.最后把所有知识合在一起写一个有用的驱动. 本章学习要点: 1:通用 ...
- Windows内核开发-4-内核编程基础
Windows内核开发-4-内核编程基础 这里会构建一个简单但是完整的驱动程序和一个客户端,部署内核执行一些平时user下无法执行的操作. 将通过以下内容进行讲解: 1 介绍 2 驱动初始化 3 Cr ...
- Windows内核开发-6-内核机制 Kernel Mechanisms
Windows内核开发-6-内核机制 Kernel Mechanisms 一部分Windows的内核机制对于驱动开发很有帮助,还有一部分对于内核理解和调试也很有帮助. Interrupt Reques ...
- windows原生开发之界面疑云
windows桌面开发,界面始终是最大的困惑.我们对前端工具的要求,其实只有窗体设计器.消息映射,过分点的话自适应屏幕.模型绑定.能够免于手工书写,其实这个问题并不复杂,但VS不实现.QT语法 ...
- Windows驱动开发(中间层)
Windows驱动开发 一.前言 依据<Windows内核安全与驱动开发>及MSDN等网络质料进行学习开发. 二.初步环境 1.下载安装WDK7.1.0(WinDDK\7600.16385 ...
随机推荐
- 默认情况下,不使用of子句表示在select所有的数据表中加锁(转)
Select …forupdate语句是我们经常使用手工加锁语句.通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作.同时,在多版本一致读机制的支持下,select语句也不 ...
- java面向对象下:Java数据库编程
19.Java数据库编程: JDBC概述: JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...
- 怎样将baidu地图中的baidu logo 去掉
今天我的老大问我是不是能够将baidumap 的js版中baidu logo 去掉. 我上网查询一下,有各种方法.比方将相应的logo div remove hide 等等,这些都是须要JS 函数触发 ...
- 谈VC++对象模型
一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节.对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释.Inside the C++ Object Model ...
- Delphi的没落有三个原因(比较贴切)
Delphi的没落有三个原因:1,Object pascal并没有像C/C++那样成为业内标准. 如果你使用C或C++写程序,可以在任何地方进行编译,例如Windows.Linux.手机,甚至是单片机 ...
- qt 获取windows 的消息(通过MFC的DLL的透明窗体转发消息)good
qt 给win32 发送消息很简单,但是要获取windows 消息却十分复杂,最后想了一个不是很完美 但是也是以现在本人能力所能实现的唯一途径了,基本原理是 利用vc编写一个mfc 的dll ,这个d ...
- python glob 用通配符查找指定目录中的文件 - 开源中国社区
python glob 用通配符查找指定目录中的文件 - 开源中国社区 python glob 用通配符查找指定目录中的文件
- android一个上传图片的样例,包含怎样终止上传过程,假设在上传的时候更新进度条(一)
先上效果图: Layout为: <? xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- CS0433: 类型“BasePage”同一时候存在于“c:\Windows\Microsoft.NETxxxxxxxxxxxxxxxx
网上常见的我就不说了. 假设其他地址的方法解决不了你的问题,那么请往下看. 该类是否存放于 App_Code 下,假设是把该类从App_Code中拉出来,然后再次执行试试.
- 如何解决KEIL 5 编KEIL4同RTX系统的project解决方法
1.我个人KEIL5与KEIL4对照 相较于KEIL 5 的"华丽".笔者还是喜欢KEIL4的"内敛",主要也还是习惯了.懒得换了.由于工作的 原 ...