您所在的位置:读书频道 > 设计开发 > .Net系列 > 11.1.1 添加资源

11.1.1 添加资源

2009-08-21 08:45 王德才译 清华大学出版社 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

《WPF编程宝典——使用C# 2008和.NET 3.5(第2版)》第11章资源,本章将介绍程序集资源以及它们使用的pack URI语法。还将学习WPF提供的本地化支持,分析对象资源模型,以及如何使用对象资源模型来简化XAML标记。本节为大家介绍添加资源。

AD:

11.1.1  添加资源

可以通过向项目添加文件,并(在Properties窗口中)将其Build Action属性设置为Resource,来添加自己的资源。这就是所需要做的全部工作-- 这确实是一个好消息。

为了更好地组织资源,可以在项目中创建子文件夹(在Solution Explorer中右击项目名称,并选择Add | New Folder菜单项),并使用这些文件夹组织不同类型的资源。图11-1显示了一个示例,该示例在一个名为Images的文件夹中包含了几个图像资源,并且在一个名为Sounds的文件夹中包含了两个音频资源。

更新以这种方式添加的资源非常容易。只需要替换文件并重新编译应用程序即可。例如,如果创建了如图11-1所示的项目,就可以在Windows浏览器中将所有新文件复制到Images文件夹中。只要替换了在项目中包含的文件的内容,就不需要在Visual Studio中再采取任何其他特殊步骤(除了实际编译应用程序之外)。

为了能够使用资源,需要注意以下两点:

不能将Build Action属性错误地设置为Embedded Resource。尽管所有的程序集都被定义为嵌入的资源,但是Embedded Resource生成操作会在另外一个更难访问的位置放置二进制数据。在WPF应用程序中,假定总是使用Resource生成类型。

不要在Project Properties窗口中使用Resource选项卡。WPF不支持这种类型的资源URI。

好奇的程序开发人员自然希望知道嵌入到程序集中的资源到底发生了什么变化。WPF将它们合并到一个单独的流中(和其他BAML资源一起)。单独的资源流使用下面的格式进行命名:AssemblyName.g.resources。在图11-1中,应用程序被命名为AssemblyResources,并且资源流被命名为AssemblyResources.g.resources。

 
图11-1  具有程序集资源
的应用程序
如果希望实际查看在编译过的程序集中嵌入的资源,可以使用反编译工具。不过,主要的.NET工具-- ildasm-- 不支持该特性。可以从http://www.aisto.com/roeder/ DotNet网址免费下载更好的Reflector工具,通过该工具可以深入挖掘资源。图11-2利用Reflector工具显示了在图11-1中显示的项目中的资源。
 
(点击查看大图)图11-2  在Reflector中的程序集资源

除了所有的图像和音频文件外,还可以看到用于应用程序中窗口的BAML资源。在WPF中,文件名中的空格不会引起问题,因为Visual Studio足够智能,它能够正确地略过它们。当应用程序被编译过之后,您可能还会注意到文件名被变成了小写形式。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

网友评论TOP5

查看所有评论(

提交评论

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点专题

更多>>

读书

网络管理员考前辅导
本书按照国家人事部、信息产业部全国计算机技术与软件专业资格(水平)考试要求编写,内容紧扣《网络管理员考试大纲》。全书共分

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone