用IrisSkin轻松实现换肤功能

时间:2022-02-24 07:35:03

IrisSkin2.dll是一款很不错的免费皮肤控件,利用它可以轻松的实现WinForm窗体换肤然而IrisSkin2.dll只能在.NET Faremwork 4.0以及之前的版本使用,所以要在VS2010中使用它需要将自己的项目框架设置为.NET Framework 4.0,还有另一种方法就是使用IrisSkin4.dll,他的使用方法和IrisSkin2.dll基本是完全一样的

一、首先在网上下载 (已与皮肤一起打包),将IrisSkin4.dll与Skins(皮肤)一起拷贝到项目的\bin\Debug文件夹下

二、在程序的资源管理器中的【引用】上单击右键,选择【添加引用】,找到刚才复制过来的IrisSkin4.dll文件,点击【确定】

用IrisSkin轻松实现换肤功能

用IrisSkin轻松实现换肤功能

三、【工具】——>【选择工具箱项——>【.NET Framework组件】——>【浏览】——>找到IrisSkin4.dll——>点击【确定】,SkinEngine控件加入到工具箱

用IrisSkin轻松实现换肤功能

用IrisSkin轻松实现换肤功能

用IrisSkin轻松实现换肤功能

四、把控件添加进程序的主窗体,并在主窗体的构造函数中编辑如下一行代码选择皮肤,即可完成渲染

skinEngine1.SkinFile = System.Environment.CurrentDirectory + "\\Skins\\所选皮肤名(后缀为.ssk)"; //选择皮肤文件

使用IrisSkin4.dll换肤的效果是有限的,有时它的渲染效果反而令我们抓狂(比如我用了一个SportsBlue皮肤,然后发现虽然这个皮肤的样式我很喜欢,但在它的渲染下窗体的button实在是很low),这时我们想要自定义自己不满意的控件而不需要皮肤对这些控件进行渲染,只需加上如下一行代码:

skinEngine1.DisableTag = 9999; //设置不需要被渲染的控件Tag值为9999

然后把不需要被渲染的控件Tag值属性设置为9999,即可显示该控件的自定义样式

出处:

========================================================================================================

最近做一些C#数据库开发项目,基本窗体程序做好之后,发现界面较为丑陋,然而,,自己又不善于美工,所以想到了求助于第三方帮忙。网上有较多的是利用IrisSkin2.dll文件来开发,然后,本人按照一些解决方案做下来,发现该链接库并不会适合VS2010平台开发的Winform,故此,寻找替代方案,然后,发现了IrisSkin4.dll比较合适的完成了美化工作。综合别人的做法,本人做法如下:

    1. 将IrisSkin4.dll动态文件导入当前项目引用中。具体操作为:解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin4.dll文件,然后加入即可。建议,最好把IrisSkin4.dll文件放在当前项目\bin\Debug文件中。

   2. 然后把IrisSkin4.dll文件添加到VS2010的工具箱:视图->工具箱->右键->选择项->浏览找到IrisSkin4.dll文件(文件最好放在当前项目\bin\Debug文件中)按确定,控件就添加到工具箱中了,然后把工具箱中新添加的 SkinEngine控件拖到当前项目中。

  3. 把皮肤目录中的.ssk文件复制到当前项目\bin\Debug文件中,ssk文件可以根据需求自己选择.

  4. 再在项目中调用.ssk皮肤文件。例:

   在自己的主程序的MainForm窗口对应的 MainForm.Designer.cs中,先声明private Sunisoft.IrisSkin.SkinEngine skinEngine1;然后是在InitializeComponent()  (Windows 窗体设计器生成的代码)定义                                 

this.skinEngine1 = new Sunisoft.IrisSkin.SkinEngine(((System.ComponentModel.Component)(this)));  

 

最后,在MainForm.cs文件中构造函数定义:

this.skinEngine1.SkinFile = Application.StartupPath + "//DiamondBlue.ssk";

 

同时,为了保证对其他的窗体也产生相应的效果,则在MainForm对应的构造函数中,加入如下代码:

1

 

    Sunisoft.IrisSkin.SkinEngine se = null;
    se = new Sunisoft.IrisSkin.SkinEngine();  
   se.SkinAllForm = true;