C# WinForm界面美化--使用IrisSkin实现换肤功能

WinForm界面使用IrisSkin,可以说做到了一键美化,当然美化的效果仁者见仁智者见智,可以挑选自己喜欢的。

1、IrisSkin下载地址:http://www.pc6.com/softview/SoftView_70918.html#download

2、将下载的文件放到Debug下面。

3、新建一个WinForm窗体,命名为Main:

4、Main代码实现如下:

        SkinEngine skinEngine = new SkinEngine();

        public Main()
        {
            InitializeComponent();

            string[] files = Directory.GetFiles(Path.Combine(Application.StartupPath, @"IrisSkin4\Skins"), "*.ssk", SearchOption.AllDirectories);
            if (files != null && files.Length > 0)
            {
                //变量
                int index = 0;      //按钮序号
                int space = 10;     //按钮间隔
                int btnWidth = 130; //按钮宽度
                int btnHeight = 30; //按钮高度
                int btnCount = 7;   //每行按钮个数

                //每行显示7个按钮
                for (int rows = 0; rows < (files.Length % btnCount == 0 ? files.Length / btnCount : (files.Length / btnCount) + 1); rows++)
                {
                    //最后一行的按钮个数
                    int lastCout = files.Length % btnCount;
                    //生成按钮
                    if (index < (files.Length / btnCount) * btnCount)
                    {
                        for (int cols = 0; cols < btnCount; cols++)
                        {
                            Button btn = new Button
                            {
                                Location = new Point(cols * btnWidth + (cols + 1) * space, rows * btnHeight + (rows + 1) * space),
                                Width = btnWidth,
                                Height = btnHeight
                            };
                            string path = files[index];
                            string btnName = path.Substring(files[index].LastIndexOf(@"\") + 1);
                            btn.Text = btnName;
                            btn.Click += (object sender, EventArgs e) => { skinEngine.SkinAllForm = true; skinEngine.SkinFile = path; tsslSkinFile.Text = Path.Combine(Application.StartupPath, btnName); };
                            Controls.Add(btn);
                            index++;
                        }
                    }
                    else
                    {
                        for (int cols = 0; cols < lastCout; cols++)
                        {
                            Button btn = new Button
                            {
                                Location = new Point(cols * btnWidth + (cols + 1) * space, rows * btnHeight + (rows + 1) * space),
                                Width = btnWidth,
                                Height = btnHeight
                            };
                            string path = files[index];
                            string btnName = path.Substring(files[index].LastIndexOf(@"\") + 1);
                            btn.Text = btnName;
                            btn.Click += (object sender, EventArgs e) => { skinEngine.SkinAllForm = true; skinEngine.SkinFile = path; tsslSkinFile.Text = Path.Combine(Application.StartupPath, btnName); };
                            this.Controls.Add(btn);
                            index++;
                        }
                    }
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

5、换肤渲染前效果:

6、换肤如选DeepCyan.ssk,渲染的效果如下:

注:不想被渲染的控件,可以设其Tag属性值为9999,如测试区的DataGridView就设了此项。

好了,分享就到此结束了,希望对有此需要的人有一些帮助。

原文地址:https://www.cnblogs.com/atomy/p/11964886.html

时间: 2024-10-10 20:13:56

C# WinForm界面美化--使用IrisSkin实现换肤功能的相关文章

使用DevExpress实现界面换肤功能

最近要用到devExpress,一句话,很好很强大,比起vs自带的winform界面,种类和花样要多了不少,然而,强力的功能带来了庞大的信息量,所以我打算通过一些小模块来和大家一起对它进行探讨和研究. 今天先研究一下他的换肤功能.在控件中,其默认提供了18中风格让我们选择,如下图: 下面就看看怎么实现让界面切换到选中风格的功能.先建立一个项目,引入一个button和一个grid如下图: 由于在devExpress.skins.skinManager.Default.Skins中只有13中皮肤所以

.NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能

.NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能 转载▼ 大家好,从事c-s开发的C#程序员经常为winForm的界面设计苦恼,笔者曾经也深受“美工神话”的危害,如今提到美工,界面布局设计就开始蛋疼…. 所幸的是,笔者无意间接触到了一些比较可爱的第三方控件,可以为我们程序员省掉很多美工上面的麻烦…在陆续的博客中我会为大家介绍,今天我们的主题是:IrisSkin2.dll IrisSkin2.dll是一款很不错的免费皮肤控件,利用它可以轻松的实现winFor

ET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能

NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能 (2010-12-02 21:43:12) 转载▼ 标签: irisskin2使用 vs2010换肤 添加irisskin2 winform换肤 分类: .NET杂谈 大家好,从事c-s开发的C#程序员经常为winForm的界面设计苦恼,笔者曾经也深受“美工神话”的危害,如今提到美工,界面布局设计就开始蛋疼…. 所幸的是,笔者无意间接触到了一些比较可爱的第三方控件,可以为我们程序员省掉很多美工上面的麻烦…在陆

VS2010使用皮肤控件实现换肤功能

在我们平时使用的各种工具中,如QQ,迅雷,以及各种空间等,都提供了一些换肤功能,可以让我们选择各种我们喜欢的界面.本文就对VS中常用的窗口程序做一个简单的换肤,利用一个dll文件来进行实现. 首先我们要加载一个叫做IrisSkin2.dll的dll文件,通过“添加引用”,在应用里添加IrisSkin2.dll,就可以完成对这个dll的调用.然后在工具栏中添加一个SkinEngine的控件.可以在工具栏中添加一个选项卡,比如命名为Skin,然后右键单击,在选择项的.NETFramework组件中找

Android学习之 换肤功能模块的实现&lt;二&gt;

在上篇中 主要有学习到皮肤资源内置到应用程序中 的方式实现换肤的 基本思路,本篇将继续以上篇的思路学习 皮肤资源内置的方式实现换肤效果.但本篇侧重于应用中换肤功能的代码设计实现上!切换的皮肤资源位于assets下不同的皮肤资源文件夹中. 本篇demo程序的代码结构如下: 本篇实现换肤功能的代码设计 UML类图如下: 本篇demo的换肤效果如下:               主要的实现代码在于: 1.SkinConfigManager.java 作用:皮肤配置管理,封装了SharedPrefere

Android学习之 换肤功能模块的实现&amp;lt;二&amp;gt;

在上篇中 主要有学习到皮肤资源内置到应用程序中 的方式实现换肤的 基本思路,本篇将继续以上篇的思路学习 皮肤资源内置的方式实现换肤效果.但本篇側重于应用中换肤功能的代码设计实现上.切换的皮肤资源位于assets下不同的皮肤资源目录中. 本篇demo程序的代码结构例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFuaWNlMDUyOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissol

教程: Android应用如何实现换肤功能

本节课程的目的:学会换肤的方案及实现,掌握不同换肤方案的优缺点及适用场合. 希望各位同学做到:学习某一个技巧就掌握透彻,多练习.最好举一反三.触类旁通,掌握分析问题解决问题的思路和方法. 我讲解的是原理以及实现的关键技术点,细节.优化及与课程主题不相关的或初级的内容可能不会讲解.这是免费培训,精力有限,暂时只能做到让普通的变优秀,让优秀的变卓越.你要是已经卓越了来教教我吧.暂时不做入门培训. 国内有很多的软件都支持皮肤定制,这也是与国外软件重大不同之一,国外用户注重社交.邮件等功能,国内用户则重

Android实现换肤功能(一)

上周有个朋友给建议说讲讲换肤吧,真巧这周公司的工作安排也有这个需求,换的地方之多之繁,让人伤神死了.正所谓磨刀不误砍柴工,先磨下刀,抽出一个工具类,写了个关于换肤的简单demo. Android中换肤的实现有几种方法,我使用的是读取共享进程空间另一apk中的资源的方法.大致的原理如下,让你的app和一个只有资源文件的app运行在同一进程中,这样你的app就可以访问另一app的资源了.原理很简单,下面我们分步骤讲解实现过程. 一.共享进程运行的空间 通过在两个工程下的manifest根节点添加相同

[转]页面换肤功能浅析

原理:通过存取cookie和dom操作调用不同的样式表文件来实现前台换肤. Html代码部分: 1.要有一个带id的样式表链接,我们要通过操作这个链接来调用不同的href. <link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile" /> 2.皮肤选择按钮(后台为每个li添加onclick事件,触发换肤功能) <ul id=