當前位置:編程學習大全網 - 源碼下載 - C# 調用類似千千靜聽或者酷我音樂的皮膚文件?

C# 調用類似千千靜聽或者酷我音樂的皮膚文件?

c#皮膚設置2008-12-05 15:211:控件(破解版,只限.Net2005)和皮膚下載地址如下(用影音傳送帶等下載工具下載):

/down3/20070605/05142029888.rar

DEMO程序(含源碼)

/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方法恢復系統默認皮膚

大家可以不用直接給單獨壹個窗體換膚。我以上的代碼是生成壹個換膚菜單,然後所有的窗體都是自動進行換膚了。

  • 上一篇:如何用裏程兌換環球商務艙機票
  • 下一篇:2017金融電話銷售技巧與詞匯
  • copyright 2024編程學習大全網