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

摘要:
WinForm界面使用IrisSkin,可以说实现了一键美化。当然,美化效果因人而异,你可以选择你喜欢的=null&&files。长度˃0){//变量intindex=0;//按钮序列号intspace=10;//按钮间隔intbtnWidth=130;//按钮宽度intbtnHeight=30;//按钮高度intbtnCount=7;//每行中的按钮数//每行显示(introws=0;rows˂(files.Length%btnCount==0)的七个按钮。好的,分享结束了。希望您能帮助那些需要的人。

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

    1、IrisSkin下载地址:https://www.cr173.com/soft/69061.html

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

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

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

     4、Main代码实现如下:

        SkinEngine skinEngine = new SkinEngine();

        public Main()
        {
            InitializeComponent();

            #region 生成皮肤样式按钮
            string[] files = Directory.GetFiles(Path.Combine(Application.StartupPath, @"IrisSkin4Skins"), "*.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.Active = true; 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.Active = true; skinEngine.SkinAllForm = true; skinEngine.SkinFile = path; tsslSkinFile.Text = Path.Combine(Application.StartupPath, btnName); };
                            this.Controls.Add(btn);
                            index++;
                        }
                    }
                }
            }
            #endregion


        }

        /// <summary>
        /// 弹出对话框
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        /// <summary>
        /// 恢复默认值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            skinEngine.Active = false;
        }

    5、换肤渲染前效果:

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

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

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

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

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

免责声明:文章转载自《C# WinForm界面美化--使用IrisSkin实现换肤功能》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇e.pageX、e.clientX、e.screenX、e.offsetX的区别以及元素的一些CSS属性PMP--4. 规划过程组下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WinForm程序打包工具InnoSetup使用说明图文教程

WinForm程序打包工具InnoSetup使用说明图文教程 WinForm程序开发测试好了,如果将Debug/Release里面的文件发给客户使用,会让客户觉得你不够专业,但是使用VS自带的打包工具太繁琐太复杂,稍微有一个地方没有配置好,就可能会造成打包失败或达不到预期的效果。有没有一种更加简单Winform程序打包工具呢?答案是有的。InnoSetup...

(转载)winform关闭窗口的两个问题

今天把系统的登陆验证功能做上去,现在整套系统俨然一体,有那种集大成后万物归一的舒畅。 讲两个遇到的问题。    第一个问题:通过登陆窗口(Login.cs)正确验证后将进入主窗体(Main.cs),这个时候如何处理这个登陆窗口?    (1)将其隐藏起来,this.Hide();然后进入主窗体,在关闭主窗体时调用Application.Exit();连同这...

winform使用Barcodex控件预览和打印一维码

1、控件下载。   http://files.cnblogs.com/files/masonblog/barcodex.zip 。   包含barcodex.ocx控件、barcodex帮助文档、两个winform控件的dll文件。 2、控件的注册。 (1)检测控件是否注册(方法不唯一)。   本例使用的是判断注册表中 HKEY_CLASSES_ROOTT...

Winform开发框架之单据窗体生成(主从表,流水单号)

项目源码下载地址:https://github.com/GarsonZhang/GZFramework.Demo 前言 1.在开始本节前请先重置代码为 chapter-03-start 懒人地址:https://github.com/GarsonZhang/GZFramework.ShareDemo/tree/chapter-03-start 2.创建表...

【WinForm程序】注册热键快捷键切换

重写DefWndProc事件 #region Window 消息捕获 const int WM_COPYDATA = 0x004A; public structCOPYDATASTRUCT { publicIntPtr dwData; public i...

Winform控件

控件 添加控件:利用ToolBox,直接在form.cs[design]中可视的添加 代码添加: 在form.designer.cs中InitializeComponent()中添加 如:this.label1 = new System.Windows.Forms.Label() 在form.cs中的构造函数Form()添加 如:Button...