在你的winform程序中是否用到了大量图片?背景,按钮效果,边角效果图片等等,这么多的图片存放起来比较费事,一不小心弄丢一张还会导致窗体效果出了问题。这种情况下,可以考虑使用资源文件来保存这些图片,使用资源文件要用到如下两个类:
ResourceWriter,以系统默认的格式将资源写入输出文件或输出流。无法继承此类。
ResourceManager,提供在运行时方便地访问区域性特定资源的途径。
资源文件的后缀名一般都是.resources,所以,你命名一个资源文件,然后将图片或者文件等内容,按名称——文件对应保存进去,就可以了。如下代码可实现保存这些内容:
有两张图片top.png和center.png,还有一个字符串"今天天气不错!",保存至资源文件MyFirstResourceFile.resources。
ResourceWriter resourceWriter = new ResourceWriter(@"F:\MyFirstResourceFile.resources"); Image imageTop = Image.FromFile(@"F:\imageFile\top.png"); Image imageCenter = Image.FromFile(@"F:\imageFile\center.png"); resourceWriter.AddResource("imageTop", imageTop); resourceWriter.AddResource("imageCenter", imageCenter); resourceWriter.AddResource("resourceString", "今天天气不错!"); resourceWriter.Generate(); resourceWriter.Close();
读取资源文件里的内容,如下代码:
ResourceManager resourceManager = ResourceManager.CreateFileBasedResourceManager(@"MyFirstResourceFile", @"F:\", null); Image rimageTop = resourceManager.GetObject("imageTop") as Image; Image rimageCenter = resourceManager.GetObject("imageCenter") as Image; string resourceString = resourceManager.GetObject("resourceString") as String;
2、如何使用皮肤
使用资源文件保存大量的图片你也觉得麻烦的话,那么就是用皮肤吧,关于如何制作ssk皮肤文件,这里就不说了,也比较麻烦,需要图片的纹理,颜色什么的,有专门的资料介绍这个的。这里就简单说一下,做好的皮肤如何使用吧。使用皮肤需要用到一个dll,IrisSkin2.dll,网上下载的地方挺多,http://download.csdn.net/detail/yysyangyangyangshan/3919723。
那就先下载一个能用的皮肤文件mySkin.ssk来使用,http://download.csdn.net/detail/yysyangyangyangshan/3919755。将IrisSkin2.dll添加至引用,生成后,在工具栏就有一个SkinEngine,然后拖至你的窗体中。在构造或者什么地方,加入下代码。
this.skinEngine1.SkinFile = @"F:\mySkin.ssk";
窗体就加上了皮肤。
未加皮肤前:
加皮肤后: