动态更换文件或图片

虽然用c#一年多了,但一直抱着得过且过的态度,前些日子在产品中使用到换肤功能,自己抱着头乱闯一通,既然把WEB方式用到了C/S上,看着自己的Class文件一个一个的冒出来,嗯,虽然完成了,但一想到那些配置文件,自己就不禁没心思写下去了,一个控件对应一个图片的配置节点,很是烦恼!随便一个form界面就不知多少个控件,要手写到猴年马月?但看看动态更换图片的功能还是出来,但就是有一点工作量太大了!
最近看到同事的一篇博客,唉!不听老人言吃亏在眼前,现摘抄如下:
-------------------------------------------------------------------------------
在我们日常编程过程中,通常都是将一些程序使用到的图片或者一些通用的字符串信息都写入资源文件。这样调用起来和管理起来都会比较方便。但在VS2005中,默认情况下的资源文件都是嵌入的,因此无法达到那种只更换资源文件就可以修改一些系统的内容的功能。比如系统的皮肤更换、国际化操作等都需要在程序集外部配置资源文件。所以我们就必然要使用一些资源文件的高级用法。本文就是简单介绍一种常用的生成外部资源文件的方法,供初学者参考。 要将资源文件做到程序集外部,就要把资源文件创建成一个dll文件,由于在VS2005中还没有合适的一次性生成的工具,因此我们暂时只能通过外部的工具来创建这个dll。
要创建附属资源的dll需要有以下几步:
1. 创建.resources资源文件。
可以通过使用ResourceWorkshop工具来生成一个资源文件,该工具可以在网上直接下载到是中文版本的。打开这个工具直接新建一个资源就可以了,然后就可以在这个资源里面添加字符串、图片、文件等各种资源。添加完毕之后,点击保存就可以保存为一个资源文件了。
2. 将资源文件创建成一个dll程序集。
将资源文件转换成dll程序集,需要使用.NET框架提供的al.exe工具,该工具在系统目录下的Microsoft.NET下的框架文件夹中。该程序是一个DOS程序。进入DOS之后,可以输入以下命令来生成这个DLL:
Al /t:lib /embed:e:/RjResources.resources /culture:de /out:e:Rj.Resources.dll /v:1.0.0.1
/v:1.0.0.1 表示生成的程序集的版本号。

使用附属资源dll文件:
该资源dll文件可以不被系统引用,只要在运行目录的根目录下存在这个文件就可以。在使用过程中,必须创建一个针对于该资源文件的ResourcesManager对象方法如下:
System.Resources.ResourceManager rm = new System.Resources.ResourceManager("RjResources", System.Reflection.Assembly.LoadFrom(@"Rj.Resources.dll"));
创建了rm之后,就可以直接通过rm提供的方法来访问这些资源了。如:
rm.GetString("E001")返回一个指定指定资源名称对应的字符值。图片资源可以通过rm.GetObjcet(“资源名称”)来获取。
通过以上的方法,你就可以将系统的异常提示、系统菜单以及各个按钮的名称或者是系统中所使用的所有图片都编辑到这个资源dll中,将来一旦想更换这些信息,就不需要重新编译程序,只需要再作一个资源文件就可以了。如果你的设计更灵活的话,还可以同时使用多个资源文件,只要用户进行自己配置就可以看到系统不同的样式了。
---------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值