zoukankan      html  css  js  c++  java
  • C# WinForm界面美化--使用IrisSkin实现换肤功能

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

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

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

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

         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、换肤渲染前效果:

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

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

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

  • 相关阅读:
    题目一: 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。
    个人简介
    读《构建之法》有感
    四_测试网站管理系统
    一_测试入门
    三_白盒测试
    个人简介
    二_单元测试和代码覆盖率
    第五次博客作业 初读《构建之法》的心得体会
    第三次 博客作业
  • 原文地址:https://www.cnblogs.com/atomy/p/11964886.html
Copyright © 2011-2022 走看看