利用 IrisSkin2.dll 所提供的控件 SkinEngine 来为窗体添加皮肤。
IrisSkin2.dll 及 皮肤素材,下载地址:http://download.csdn.net/source/1744355
1. 先把IrisSkin2.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin2.dll文件.....之后就不用我说了吧^_^).IrisSkin2.dll文件最好放在当前项目\bin\Debug文件中.
2. 然后把IrisSkin2.dll文件添加到vc2005的工具箱:右键->选择项->浏览找到IrisSkin2.dll文件(文件最好放在当前项目\bin\Debug文件中)按确定,控件就添加到工具箱中了.然后把工具箱中新添加的 SkinEngine控件拖到当前项目中。
3. 把皮肤目录中的.ssk文件复制到当前项目\bin\Debug文件中,(ssk文件可选).
4. 再在项目中调用.ssk皮肤文件。例:
namespace 当前项目
{
public partial class Form1 : Form
{
public Form1() //当前项目的构造器中调用皮肤文件
{
InitializeComponent();
this.skinEngine1.SkinFile = "DiamondBlue.ssk"; //DiamondBlue.ssk可换用皮肤目录中你喜欢的.ssk文件
}
…
…
}
}
注:恢复默认皮肤,只需要将this.skinEngine1.SkinFile = "DiamondBlue.ssk"; 这句注释掉或删除。
当然,大家也可以通过新建菜单实现一个单独的换肤功能,具体可参考:
[ZT]c# 程序皮肤控件
Visual Studio 2005工具箱上右击选择“选择项”,慢慢等...
在弹出的“选择工具箱项”选项卡中,点击“浏览”,找到IrisSkin2.dll存放的位置,双击,
你会发现多了个“SkinEngine”,确定。
将公共控件里的“SkinEngine”,拖到窗体上,将皮肤文件*.ssk在“解决方案资源管理器”中
添加到bin文件夹下的Debug文件夹下。(先复制皮肤文件*.ssk,在Debug文件夹上右击“粘贴”)
在初始化时加上一句:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.skinEngine1.SkinFile = "*.ssk";
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
恢复默认皮肤请将红色语句注释或删除
_______________________________________
1:控件(破解版,只限.Net2005)和皮肤下载地址如下(用影音传送带等下载工具下载):
http://download1.csdn.net/down3/20070605/05142029888.rar
DEMO程序(含源码)
http://dl2.csdn.net/down4/20070628/28181121698.rar
2:载入
下载后的rar文件里有一个IrisSkin2.dll和一个skin文件夹。
添加引用,将IrisSkin2.dll引用进项目中。
然后在解决方案资源管理器里右击项目→添加→新建文件夹,文件夹名为skin。
建完skin文件夹后再右击这个文件夹→添加→现有项,在弹出的文件选择框里选*.*所有文件,再把解压出来的skin文件夹里的所有文件全选进去。
这时候我们可以看到skin文件夹里已经有了我们添加的所有的换肤文件了。再按ctrl键选中所有的skin文件夹里的文件,在属性栏里可以看到“生成操作”一栏,默认选项是“无”,我们把它改成“嵌入的资源”。
3:类
下面我们新建一个类,把以下的代码复制进去,别忘了把命名空间改成你自己的。
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;
//TestSkin命令空间,别忘了改成你自己的。
namespace TestSkin
{
class SkinClass
{
public static Sunisoft.IrisSkin.SkinEngine se = null;
/// <summary>
/// 增加换肤菜单
/// </summary>
/// <param name= "toolMenu "> </param>
public static void AddSkinMenu(ToolStripMenuItem toolMenu)
{
DataSet skin = new DataSet();
try
{
skin.ReadXml( "skin.xml ", XmlReadMode.Auto);
}
catch
{
}
if (skin == null || skin.Tables.Count < 1)
{
skin = new DataSet();
skin.Tables.Add( "skin ");
skin.Tables[ "skin "].Columns.Add( "style ");
System.Data.DataRow dr = skin.Tables[ "skin "].NewRow();
dr[0] = "系统默认 ";
skin.Tables[0].Rows.Add(dr);
skin.WriteXml( "skin.xml ", XmlWriteMode.IgnoreSchema);
}
foreach (SkinType st in (SkinType[])System.Enum.GetValues(typeof(SkinType)))
{
toolMenu.DropDownItems.Add(new ToolStripMenuItem(st.ToString()));
toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1].Click += new EventHandler(frm_Main_Click);
if (st.ToString() == skin.Tables[0].Rows[0][0].ToString())
{
((ToolStripMenuItem)toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1]).Checked = true;
frm_Main_Click(toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1], null);
}
}
toolMenu.DropDownItems.Add(new ToolStripMenuItem( "系统默认 "));
toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1].Click += new EventHandler(frm_Main_Click);
if (skin.Tables[0].Rows[0][0].ToString() == "系统默认 ")
{
((ToolStripMenuItem)toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1]).Checked = true;
}
}
static void frm_Main_Click(object sender, EventArgs e)
{
for (int i = 0; i < ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems.Count; i++)
{
if (((ToolStripMenuItem)sender).Text == ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i].Text)
{
((ToolStripMenuItem)sender).CheckState = CheckState.Checked;
DataSet skin = new DataSet();
skin.Tables.Add( "skin ");
skin.Tables[ "skin "].Columns.Add( "style ");
System.Data.DataRow dr = skin.Tables[ "skin "].NewRow();
dr[0] = ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i].Text;
skin.Tables[0].Rows.Add(dr);
skin.WriteXml( "skin.xml ", XmlWriteMode.IgnoreSchema);
}
else
{
((ToolStripMenuItem)((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i]).CheckState = CheckState.Unchecked;
}
}
if (((ToolStripMenuItem)sender).Text == "系统默认 ")
{
RemoveSkin();
DataSet skin = new DataSet();
skin.Tables.Add( "skin ");
skin.Tables[ "skin "].Columns.Add( "style ");
System.Data.DataRow dr = skin.Tables[ "skin "].NewRow();
dr[0] = "系统默认 ";
skin.Tables[0].Rows.Add(dr);
skin.WriteXml( "skin.xml ", XmlWriteMode.IgnoreSchema);
return;
}
foreach (SkinType st in (SkinType[])System.Enum.GetValues(typeof(SkinType)))
{
if (st.ToString() == ((ToolStripMenuItem)sender).Text)
{
ChangeSkin(st);
return;
}
}
}
/// <summary>
/// 改变皮肤
/// </summary>
/// <param name= "st "> </param>
public static void ChangeSkin(SkinType st)
{
System.Reflection.Assembly thisDll = System.Reflection.Assembly.GetExecutingAssembly();
if (se == null)
{
//TestSkin是指命名空间,这里你可以换成你自己的。
se = new Sunisoft.IrisSkin.SkinEngine(Application.OpenForms[0], thisDll.GetManifestResourceStream( "TestSkin.skin. " + st.ToString() + ".ssk "));
se.Active = true;
for (int i = 0; i < Application.OpenForms.Count; i++)
{
se.AddForm(Application.OpenForms[i]);
}
}
else
{
//TestSkin是指命名空间,这里你可以换成你自己的。
se.SkinStream = thisDll.GetManifestResourceStream( "TestSkin.skin. " + st.ToString() + ".ssk ");
se.Active = true;
}
}
/// <summary>
/// 移除皮肤
/// </summary>
public static void RemoveSkin()
{
if (se == null)
{
return;
}
else
{
se.Active = false;
}
}
}
/// <summary>
/// 换肤类型
/// </summary>
public enum SkinType
{
Calmness,
DeepCyan,
Eighteen,
Emerald,
GlassBrown,
Longhorn,
MacOS,
Midsummer,
MP10,
MSN,
OneBlue,
Page,
RealOne,
Silver,
SportsBlack,
SteelBlack,
vista1,
Vista2,
Warm,
Wave,
XPSilver
}
}
4:调用
在你的主窗体里加上一个MenuStrip菜单,建一个2级菜单(如:文件→更换皮肤),然后在Form_Load事件里写上调用代码:
private void Form1_Load(object sender, EventArgs e)
{
//“更换皮肤ToolStripMenuItem” 是上面例子里“更换皮肤”这个ToolStripMenuItem的Name。
SkinClass.AddSkinMenu(更换皮肤ToolStripMenuItem);
}
5:注
以下两个方法是主要换肤用的:
ChangeSkin方法换肤
RemoveSkin方法恢复系统默认皮肤
大家可以不用直接给单独一个窗体换肤。我以上的代码是生成一个换肤菜单,然后所有的窗体都是自动进行换肤了。
没有合适的资源?快使用搜索试试~ 我知道了~
漂亮的Winform窗体皮肤
共180个文件
gif:64个
ssk:64个
skn:48个
4星 · 超过85%的资源 需积分: 19 55 下载量 113 浏览量
2013-01-15
15:41:24
上传
评论
收藏 5.38MB RAR 举报
温馨提示
漂亮的winform窗体皮肤,只需添加Iskin.dll引用,在工具栏添加组件,拖拽组件到窗体内,设置组件属性skinfile为选好的皮肤ssk文件即可
资源推荐
资源详情
资源评论
收起资源包目录
漂亮的Winform窗体皮肤 (180个子文件)
IrisSkin2.dll 504KB
DotNetSkin.dll 364KB
steelblack.gif 84KB
steelblue.gif 84KB
xpblue.gif 54KB
wave.gif 51KB
midsummer.gif 50KB
diamondblue.gif 49KB
calmness_color2.gif 49KB
warm.gif 48KB
emerald_color3.gif 48KB
silver_color2.gif 47KB
mp10.gif 47KB
wave_color1.gif 47KB
warm_color2.gif 45KB
wave_color2.gif 44KB
diamondgreen.gif 44KB
silver_color1.gif 43KB
page_color2.gif 41KB
emerald.gif 41KB
warm_color1.gif 41KB
xpgreen.gif 41KB
calmness_color1.gif 39KB
realone.gif 38KB
warm_color3.gif 37KB
sportscyan.gif 37KB
vista1.gif 35KB
emerald_color2.gif 35KB
vista1_green.gif 35KB
macos.gif 35KB
xporange.gif 34KB
sportsgreen.gif 34KB
eighteen_color2.gif 33KB
eighteen_color1.gif 33KB
page.gif 33KB
eighteen.gif 33KB
calmness.gif 33KB
oneorange.gif 32KB
xpsilver.gif 31KB
emerald_color1.gif 31KB
msn.gif 31KB
sportsblue.gif 31KB
longhorn.gif 29KB
midsummer_color3.gif 29KB
onegreen.gif 29KB
glassorange.gif 29KB
vista2_color3.gif 28KB
oneblue.gif 28KB
vista2_color4.gif 26KB
onecyan.gif 26KB
vista2_color5.gif 25KB
vista2_color1.gif 25KB
vista2_color7.gif 25KB
silver.gif 25KB
midsummer_color2.gif 24KB
midsummer_color1.gif 24KB
vista2_color6.gif 24KB
vista2_color2.gif 24KB
page_color1.gif 24KB
glassbrown.gif 22KB
sportsblack.gif 22KB
glassgreen.gif 21KB
deeporange.gif 20KB
deepcyan.gif 18KB
deepgreen.gif 18KB
sportsorange.gif 17KB
ClearLooks-HUMAN.skn 135KB
luna-BLUE.skn 105KB
luna-HOMESTEAD.skn 95KB
LE4-DEFAULT.skn 95KB
Jade Style-JADEC.skn 95KB
Slate XP-SLATE.skn 94KB
LE4-BLACK.skn 94KB
Plex Style-PLEXM6BAR.skn 85KB
Pro Genius-BLUE.skn 83KB
luna-METALLIC.skn 74KB
wmpx-XMP2.skn 73KB
Mac OS X-BLUE.skn 72KB
Tiger-TGR.skn 71KB
VistaXP-VISTAXPB2.skn 69KB
Tiger-TGRB2.skn 68KB
VistaXP-VISTAXPS2.skn 67KB
Tiger-TGRP.skn 66KB
wmpx-XMPX3.skn 64KB
Element-ROYAL.skn 62KB
Slate PDC-SLATEC.skn 62KB
Slate XP-SLATEBT.skn 61KB
Aquanox-DEEP.skn 61KB
Aquanox-SHALLOW2.skn 60KB
Royale Glass-INDIGOT.skn 59KB
Royale Glass-GRAPHITET.skn 59KB
Element-CLASSIC.skn 59KB
corona-CORONA12.skn 58KB
MNS-STANDART.skn 58KB
Plex Style-M6SVRBAR.skn 57KB
Watercolor-BLUE.skn 56KB
Watercolor-OLIVE.skn 56KB
Watercolor-ERGONOMIC.skn 56KB
Slate PDC-SLATECBT.skn 56KB
BlackMesa-NORMAL.skn 55KB
共 180 条
- 1
- 2
资源评论
- 低调的感觉2013-08-05皮肤很多,只是并不怎么好看
- wenHJJ2018-01-25偶尔会卡死
- IVera_Jing2017-03-20皮肤很多,选择也很多
- akakoo2013-06-20挺好用的,就是偶尔会卡死
红尘一祭妃子笑
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- NetOps-py通过sftp替换网络设备启动文件
- STM32单片机FPGA毕设电路原理论文报告任务驱动教学法在单片机课程教学中的应用
- STM32单片机FPGA毕设电路原理论文报告任务驱动法在单片机教学中的应用
- STM32单片机FPGA毕设电路原理论文报告人造金刚石压机智能化压力测控系统设计
- 以某列为依据匹配多项(Excel版)
- STM32单片机FPGA毕设电路原理论文报告人体短臂离心机实验台的显示控制系统
- STM32单片机FPGA毕设电路原理论文报告人工气候室监控系统的环境控制器研究
- STM32单片机FPGA毕设电路原理论文报告染整自动线张力控制系统的设计
- 数据挖掘与机器学习-实验
- 基于Linux系统Nginx的动态网站的LNMP环境源码包
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功