为了帮助用户追求美观,.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. opacity兼容性以及存在问题处理

    opacity兼容性以及存在问题处理 opacity兼容性 opacity属性是CSS3的属性,用于设置元素的不透明级别.语法: opacity: value | inherit; ①值value表示 ...

  2. 大数据vs计算机

    大数据有两个方向,一个是偏计算机的,另一个是偏经济的.你学过Java,所以你可以偏将计算机 基础1. 读书<Introduction to Data Mining>,这本书很浅显易懂,没有 ...

  3. 默认 Servlet

    什么是 DefaultSevelet DefaultSevelet 是处理静态资源的 Sevelet. 在什么位置声明它? 它在 $CATALINA_HOME/conf/web.xml 中被全局声明. ...

  4. 赋值、关系、逻辑运算、if、switch case

    cout << boolalpha将打印输出0转为false,1转为true 逻辑运算符: &&(与)    且      两个条件为真时结果为真 ||(或) 或   两个 ...

  5. springboot 动态修改定时任务

    1.静态定时 1)启动类加上注解@EnableScheduling @EnableAsync @EnableScheduling @SpringBootApplication @MapperScan( ...

  6. vue基础用法

    vue.js是什么 vue.js也称为vue,读音/vju/ 是一个构建用户界面的框架 是一个轻量级MVVM(Model-view-viewModel)框架,和angular,react类似,其实就是 ...

  7. 【阿里云IoT+YF3300】10.快速开发188协议设备驱动

    188协议的全称为CJ-T188-2004 <户用计量仪表数据传输技术条件>,是针对水表.燃气表.热量表和其他集中采集的一个国家行业标准协议. YFIOs就是YFSoft I/O Serv ...

  8. 深度兴趣网络DIN-SIEN-DSIN

    看看阿里如何在淘宝做推荐,实现"一人千物千面"的用户多样化兴趣推荐,首先总结下DIN.DIEN.DSIN: 传统深度学习在推荐就是稀疏到embedding编码,变成稠密向量,喂给N ...

  9. 【题解】LOJ6060 Set(线性基)

    [题解]LOJ6060 Set(线性基) orz gql 设所有数的异或和为\(S\),答案是在\(\max (x_1+S\and x_1)\)的前提下\(\min x_1\)输出\(x_1\) 转换 ...

  10. 洛谷$P3413$ 萌数 $SAC\#1$ 数位$dp$

    正解:数位$dp$ 解题报告: 传送门! 非常套路的数位$dp$,,,?打起来就很爽昂,,,不要脑子,我就很爱嘻嘻嘻 然后$[l,r]$这种问题不显然考虑套路地搞成$[1,l-1]$和$[1,r]$嘛 ...