C#.net winform skin 皮肤大全devexpress,IrisSkin,DotNetSkin,SkinCrafter

以下介绍的换肤控件(排名不分先后)基本上都是要花钱注册的,委实郁闷,可以考虑自己贴图实现。
1. 东日IrisSkin
IrisSkin 共有两个版本,一个是IrisSkin.dll 用于.Net Framework1.0/1.1 和IrisSkin2.dll 用于.Net Framework2.0版本。详细内容见安装文件的help文档。
除此之外,东日还有两个很cool的Menu: MatrixMenu和WheelMenu。
(详细内容请参见http://www.sunisoft.cn/irisskin)。
2. Skin++
这个是我最初使用过的换肤控件,通过添加一个com引用,然后初始化一个skin对象,通过InitializeSkin引入ssk文件进行换肤。(详细内容请参见http://www.uipower.com)。
3.DotNetSkin
DotNetSkin的用法和IrisSkin差不多。此外,网站提供了几个免费的很cool的控件,
Button,RadioButton, CheckBox, 那个button和codeproject的XPButton有的一拼了。
(详细内容请参见http://www.dotnetskin.net)。
4.SkinCrafter
SkinCrafter地用法和Skin++有点类似,都是添加一个Com引用,然后加上几句语句用来Load皮肤,和Apply皮肤。另外,SkinCrafter还另外提供了为Windows Installer换肤的软件。
(详细内容请参见http://www.skincrafter.com)。
5.Appface
Appface支持的语言与开发环境是我见到的最多的,在。net上面使用起来相对前面4中都相对复杂一点, 不过看看那个Demo也差不多会了,还是几个函数的使用。
(详细内容请参见http://www.appface.net)。
6.SkinEngine
Alcyonesoft推出了SkinEngine,支持的语言数目与Appface不相上下,用法和Skin++, SkinCrafter类似。(详细内容参见http://www.ksdev.com)
其他还有
DotNetMagic提供了许多漂亮的控件(http://www.dotnetmagic.com),
DotNetBar许多很有创意,很炫的控件(http://www.devcomponents.com
Divelements 的许多漂亮的控件(http://www.divelements.co.uk
另外国内的。net控件网搜集了很多。net下的控件(http://www.dnc.com.cn) 

 

比较1

东日IrisSkin
存在内存泄漏,多次创建关闭相同窗体,内存只增无减
DotNetSkin
和上面的IrisSkin很类似
DotNetBar
提供替代控件,适用于新项目,而对于原有工程需要换肤不太适合
Skin++
在dotnet中,需要添加com引用。是比较早的一个换肤系统

比较2

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

appface.dll 使用
1、需要添加的API声明:
        //---------------------------------
        //The declare for AppFace
        [DllImport("appface.dll")]
        public static extern int SkinStart(string SkinFile, int nDefWinType, string CheckSum, int nType,
            int hInstance, int nLen);
        [DllImport("appface.dll")]
        public static extern int SkinRemove();
        [DllImport("appface.dll")]
        public static extern int SkinWindowSet(IntPtr hWnd, int nSkintype);
        [DllImport("appface.dll")]
        public static extern int SkinWindowSetEx(IntPtr hWnd, int nSkintype, int nResourceId,
            int nUrfLoadType, string SkinFile, int hInstance, int nLen);
        //-----------------------------------
2、在Main函数或者首先启动的窗体添加:
            if (Form1.SkinStart(Application.StartupPath + "\\belv.urf", 4, "", 1, 0, 0) == 0)
            {
                //Load a basic URF skin if failed (may be expired)
                Form1.SkinStart(Application.StartupPath + "\\gtclassicex.urf", 4, "", 1, 0, 0);
            }
其中Form1为窗体的name

===================================================================
actskn43.ocx
ActiveSkin 4.3  对于窗体的控件支持最少,甚至button。
使用:将ocx添加到toolbox,拖放到窗体上,在load事件中添加:
axSkin1.ApplySkin((int)Handle);
即可
====================================================================
DirectSkin.dll
不支持的控件要比active少,但是仍然不支持button等。
使用方法:
在使用skin的窗体上添加:
            axWbocx1.Show();

            // Try setting up a skin (requires dogmax in sample skins)
            axWbocx1.InitWB();
            axWbocx1.SetRootPathStr(Environment.CurrentDirectory + "\\skins\\");
            axWbocx1.LoadUIS("xp corona\\xp corona.uis");
            axWbocx1.DoWindow(this.Handle.ToInt32());

注意皮肤的路径
======================================================================
DotNetSkin.dll 和 IrisSkin2.dll
支持.NET的大部分控件,但是对strip不支持
且刷新严重,使用方法简单
======================================================================
SkinPlusPlus.VS.Net 支持的控件最全,支持部分第三方控件,dock窗体拖动时,效果不好。
很好用,但是没有皮肤编辑器
破解的是不是完整,未知----没有皮肤测试
使用 方法:
引用:using SKINPPDOTNETLib;
声明;public static SKINPPDOTNETLib.SkinPPDotNetClass SkinPPObj;

在Main函数中添加:
            SkinPPObj = new SkinPPDotNetClass();
            SkinPPObj.LoadSkin("PixOS.ssk", false);
注:必须在main中,不然对menustrip支持不好

以上是个人的测试,可能不是很准确,不过大致如此。

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

 

http://www.cnblogs.com/markor/archive/2008/09/27/1300110.html

http://tech.goodspeed.com.cn/118025.aspx

http://hi.baidu.com/dujinghong/blog/item/74d48e5c3abfeb46faf2c0ef.html

http://hi.baidu.com/liangjianking/blog/item/17c40267aabe7523ab184c8e.html

http://download.csdn.net/source/252225

posted @ 2009-07-26 10:50  emanlee  阅读(9651)  评论(1编辑  收藏  举报