您所在的位置: 首页 > 读书频道 > 设计开发 > .Net系列 >

11.1.1 添加资源

http://book.51cto.com  2009-08-21 08:45  王德才译  清华大学出版社  我要评论(0)
  • 摘要:《WPF编程宝典——使用C# 2008和.NET 3.5(第2版)》第11章资源,本章将介绍程序集资源以及它们使用的pack URI语法。还将学习WPF提供的本地化支持,分析对象资源模型,以及如何使用对象资源模型来简化XAML标记。本节为大家介绍添加资源。
  • 标签:资源  WPF  C#  .NET3.5  WPF编程宝典——使用C# 2008和.NET 3.5

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】

回书目   上一节   下一节
上一篇: 11.1 程序集资源 下一篇: 11.1.2 检索资源
C#数组基础介绍与操作详解
让你的代码“炫”起来——WPF开发教程
C#实用基础教程
C#技术开发指南
算法之道

频道推荐

更多>>

热点标签

刀片服务器   云计算   ARP攻防   思科培训  

全站热点

更多>>

技术人

更多>>

读书

更多>>

优秀博文

更多>>

最新热帖

更多>>

技术快讯