怎样把皮肤运用到项目的界面里面
解决方案 »
- 还是正则问题,绕不过去这道坎了
- c#如何判断当前用户使用了外网代理?谢谢!!!!
- crystalReportViewer1控件的问题
- 每日一學(如何將繁體字文件轉換為簡體)
- 高手们来看下~
- 求教!!关于部署应用程序的的问题...(在线等...)
- 请问我在有atlas的UpdatePanel无刷新符值给一个TEXTBOX控件,却会把里面的FreeTextBox控件变形。
- 高分聘请帅哥,我用webclient类上传文件到服务器,可是要用户名和密码,(能否用webclient实现这种上传,还是必须用FtpClient类?)不知
- 请名师
- Ado.net 未修正的错误 求教100!
- C# Winform界面闪烁问题
- 求教serialport类如何得到新收到的短信?
http://ufo-crackerx.blog.163.com/
http://download.csdn.net/source/2217936
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;//TestSkin命令空间,别忘了改成你自己的。
namespace skintest
{
public 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("skintest.skin." + st.ToString() + ".ssk"));
se.Enable3rdControl = false;
se.Active = true;
for (int i = 0; i < Application.OpenForms.Count; i++)
{
se.AddForm(Application.OpenForms[i]);
}
}
else
{
//TestSkin是指命名空间,这里你可以换成你自己的。
se.Enable3rdControl = false;
se.SkinStream = thisDll.GetManifestResourceStream("skintest.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
{
office2007,
MacOS,
MP10,
MSN,
Silver,
Wave,
DiamondBlue,
DeepGreen,
Eighteen,
Calmness,
CalmnessColor1,
CalmnessColor2,
DeepCyan,
DeepOrange,
DiamondGreen,
EighteenColor1,
EighteenColor2,
EighteenColor3,
vista1,//这里还可以相继添加很多只要是在skin文件夹中的就可以将他枚举进来。就可以添加多个皮肤。 }
}
客户端代码 private void Form1_Load(object sender, EventArgs e)
{
SkinClass.AddSkinMenu(更换皮肤ToolStripMenuItem);
}窗体上的控件只需要一个menuStripwinform的
然后去网上找个IrisSkin2.dll 的文件就好了,随便百度一下就有的
请说明是在C/S 中还是在B/S 项目中???