为了帮助用户追求美观,.NET 4.0 专门为对此有需求的人提供了IrisSkin4.dll皮肤引用集,里面封装了许多对窗体重新描绘的方法,再搭配上WinForm特有的 .ssk 文件,就可以实现窗体的主题式美化,下面介绍如何使用这个皮肤引用集(用例项目名称为:Test 开发环境:Visual Studio 2012):

  1. 将IrisSkin4.dll下载至电脑中,并建议将该文件存放至项目的Debug中。(方便引用) 
  2. 进入项目,右键点击Test窗体类的引用->点击”浏览“->找到项目的Debug文件夹->双击IrisSkin4.dll文件->点击确定后,在引用集里就会出现“IrisSkin4” 
  3. 打开工具箱(看不到的请点击菜单栏中的视图->工具箱即可),然后在工具箱的空白处右键->添加选项卡,名称怎么好记怎么起,新建好应该会有“此组中没有可用控件”,然后将我们Debug中的IrisSkin4.dll文件,直接拖动到这些字上,也就是往这个选项卡里加控件。成功后如下图: 
  4. 然后拖动SkinEngine控件到窗体上,成功后如下图: 
  5. 自此美化窗体的环境全部搭建完成。

有了环境之后,窗体的美化工作就和我们平时接触到的换肤操作有些相似(就是选择一个皮肤,然后点击更换),但在C#窗体开发中,这种“换肤操作”不是很容易的。首先要明白一个点就是,窗体的皮肤文件都是以 “.ssk”为后缀名的,所以,我们要先去制作窗体的皮肤文件,才能实现“换肤”。(但是这就需要美工基础了,所以博主在这里提供了一些现成的美观的ssk文件提供阅读者下载,皮肤不是我做的,我整理的,尊重原作者。)

下面,我就给阅读者简单的分享一下流程吧:

  1. 首先将现成的.ssk文件放在项目的Debug中,这也是方便引用。(用例为DeepCyan.ssk) 
  2. 然后在Form1.cs的InitializeComponent();下添加如下代码:
this.skinEngine1 = new Sunisoft.IrisSkin.SkinEngine(((System.ComponentModel.Component)(this)));
this.skinEngine1.SkinFile = Application.StartupPath + "//皮肤文件名";

用例中如图: 

3. 然后保存代码,我们试试看效果怎么样! 

4. 自此美化界面基本完成,是不是很容易。无须美工基础,简单的审美即可。

这种简单的窗体美化有助于开发的系统整体保持一个风格,增强用户的体验性和视觉感受。

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

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

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

C#的WinForm窗体美化的更多相关文章

  1. C# Winform 窗体美化

    using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using Sys ...

  2. WinForm 窗体属性 窗体美化

    WinForm是·Net开发平台中对Windows Form的一种称谓. Windows窗体的一些重要特点如下: 功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的 ...

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

    WinForm界面使用IrisSkin,可以说做到了一键美化,当然美化的效果仁者见仁智者见智,可以挑选自己喜欢的. 1.IrisSkin下载地址:https://www.cr173.com/soft/ ...

  4. winform 窗体圆角设计

    网上看到的很多winform窗体圆角设计代码都比较累赘,这里分享一个少量代码就可以实现的圆角.主要运用了System.Drawing.Drawing2D. 效果图 代码如下. private void ...

  5. winform窗体置顶

    winform窗体置顶 金刚 winform 置顶 今天做了一个winform小工具.需要设置置顶功能. 网上找了下,发现百度真的很垃圾... 还是必应靠谱些. 找到一个可以链接. https://s ...

  6. winform窗体控件(全)

    回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...

  7. C#将exe运行程序嵌入到自己的winform窗体中

    以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:C将exe运行程序嵌入到自己的winform窗体中 - kingmax_res - iSport注意:该方法只适用于com的e ...

  8. Winform 窗体单例

    有窗体Form1和窗体Form2,单击Form1上按钮,只弹出一个Form2. Form2里自定义一个方法,里面判断是否弹出Form2,没有时弹出Form2. public static Form2 ...

  9. WinForm窗体嵌入

    一.在winform窗体上添加两个控件 1.容器>Panel 2.添加 SideBar.dll (下载链接:http://pan.baidu.com/s/1o6qhf9w) (1)将SideBa ...

随机推荐

  1. LuoguP3066 逃跑的BarnRunning Away From…

    LuoguP3066 先吐槽一下,这道题名字好长啊 一个非常明显的思路,利用倍增数组不断向上跳.直到数值大于\(L\),然后直接差分统计答案就好了. 这种ZROI也考过,不多赘述了. 我们来考虑主席树 ...

  2. 2018-2-13-win10-uwp-listView-绑定前一项

    title author date CreateTime categories win10 uwp listView 绑定前一项 lindexi 2018-2-13 17:23:3 +0800 201 ...

  3. 几个关于2-sat的题

    几个关于2-sat的题 HDU3062 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3062 题意: 从2n个人去宴会,有 m条关系 i和j不能同时去 ...

  4. lamda表达式和尾置返回类型

    基本lambda语法 基本形式如下: [capture](parameters) mutable ->return-type {body} [capture]:叫做捕获说明符,表示一个lambd ...

  5. c++ 队列算法

    include using namespace std; #define Maxsize 5 typedef int DataType; typedef struct Queue { DataType ...

  6. 以windows服务方式快速部署免安装版Postgres数据库

    目录 以windows服务方式快速部署免安装版Postgres数据库 1.下载Postgresql数据库免安装包 2.安装环境准备及验证 解压文件 测试环境依赖 3.创建并初始化数据目录 创建数据目录 ...

  7. Service Mesh服务网格清单

    Service Mesh服务网格清单 Istio Istio官网 Istio中文官网 Istio开源 无需太多介绍Service Mesh明日之星,扛把子,截止2019.11还有太多问题没解决 复杂性 ...

  8. ML基础——搜索引擎与图书管理,百度与李彦宏

    本文始发于个人公众号:TechFlow 谈及机器学习,大家想必会有许多联想,比如最近火热的人工智能,再比如战胜李世石的AlphaGo,甚至还会有人联想起骇客帝国或者是机械公敌等经典机器人电影. 但实际 ...

  9. Volatile是用于解决什么问题,谈谈实现原理

    一.volatile的作用 通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操 ...

  10. 【题解】CTSC1999家园(网络流)

    CTSC1999家园 建模方法类似我NOI2019网络同步赛我的T1写法[[题解]NOI2019Route](70分) 问题的焦点是:空间时间载具. 考虑如何击破时间限制,可以对每个点关于每个时刻建立 ...