C#,将IrisSkin2皮肤完全整合到exe中
2013-11-28 17:42
134 查看
C#开发的程序原生界面实在是太丑了,自己又没有美化天赋,所以只能使用皮肤控件了,网上找到了IrisSkin2,包含一个.dll文件和若干ssk后缀的皮肤文件,代码其实很简单的。但是后来发现个问题,就是exe的运行必须有资源文件的支持,不然根本就打不开软件,但我开发的100多K的小软件实在没必要这样,是直接在桌面运行的那种,所以想到将全部的依赖文件整合到exe文件中,网上查找了很多资料,下面说下过程。
首先是IrisSkin2的使用方法:
初始化皮肤:
设置皮肤:
可以看到非常简单,调换皮SkinFile的值就可以更换皮肤了,所有的皮肤名称我放在一个Combox中。
下面是将文件整合:
将Properties\Resources.resx文件打开,在“添加资源”-“添加现有文件”,选择皮肤文件就行了,Resources.resx这个文件本身是包括在exe中的
其后是调用的问题:
有两种调用方式:Properties.Resources.名称 Properties.Resources.ResourceManager.GetObject("名称"),由于现在只知道名称,所以使用第二种方式,返回式是Object类型,se.SkinFile是string类型,不兼容,SkinEngine还有一种设置皮肤的方法se.SkinStream,是Stream类型,所以要将Object转化为Stream
先强制转化为byte[],然后转化为Stream
至于整个dll文件,网上的方法是:找到你引用的程序集的属性,把 “嵌入互操作类型” 改成 true,我用的VS2008貌似没有这个选项,VS2010的可以试下
整合exe增加的大小基本就是添加东西的大小,如果谁有更简便的方法请留下言
首先是IrisSkin2的使用方法:
初始化皮肤:
Sunisoft.IrisSkin.SkinEngine se = new Sunisoft.IrisSkin.SkinEngine(); se.SkinAllForm = true;
设置皮肤:
se.SkinFile="Skins/mdd_spring.ssk";
可以看到非常简单,调换皮SkinFile的值就可以更换皮肤了,所有的皮肤名称我放在一个Combox中。
下面是将文件整合:
将Properties\Resources.resx文件打开,在“添加资源”-“添加现有文件”,选择皮肤文件就行了,Resources.resx这个文件本身是包括在exe中的
其后是调用的问题:
有两种调用方式:Properties.Resources.名称 Properties.Resources.ResourceManager.GetObject("名称"),由于现在只知道名称,所以使用第二种方式,返回式是Object类型,se.SkinFile是string类型,不兼容,SkinEngine还有一种设置皮肤的方法se.SkinStream,是Stream类型,所以要将Object转化为Stream
先强制转化为byte[],然后转化为Stream
byte[] obj=(byte[])Properties.Resources.ResourceManager.GetObject(selectedValue); se.SkinStream = new MemoryStream(obj);
至于整个dll文件,网上的方法是:找到你引用的程序集的属性,把 “嵌入互操作类型” 改成 true,我用的VS2008貌似没有这个选项,VS2010的可以试下
整合exe增加的大小基本就是添加东西的大小,如果谁有更简便的方法请留下言
相关文章推荐
- C# API接口使用样例
- C#利用GDI+绘制旋转文字,矩形内可以根据布局方式排列文本
- C#算法基础之选择排序
- C#获取局域网MAC地址的简单实例
- C#字符串相关操作和文件操作
- C# 打开文件目录并读取整个目录信息
- C#算法基础之冒泡排序
- C#上传Excel文件报错,在最后一列添加异常列的方法
- c#各种运算符
- c#的System.ICloneable接口说明
- 好文章——C# 4.0新特性-"协变"与"逆变"以及背后的编程思想
- C#常用函数表
- C#的空接合运算符 三目运算符
- c# excel 创建Sheet并绑定DataTable
- 利用最小二乘法拟合任意次函数曲线(C#)
- c#修改默认浏览器
- c# 操作Excel单元格属性
- 什么事XML,C#操作XML
- C#创建自定义配置节点
- c#中的套接字编程(二)