DotNetSkin使用

/// <summary> 
        /// 增加换肤菜单 
        /// </summary> 
        /// <param name= "toolMenu "> </param> 
        public  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;
            }
        }

         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  void ChangeSkin(SkinType st)
        {
            System.Reflection.Assembly thisDll =
                System.Reflection.Assembly.GetExecutingAssembly();
            //获取程序位置
            string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            string SkinFileEx = path + @"\netskins\" + st.ToString() + ".skn";
            if (skinUI1 == null)
            {

                skinUI1 = new SkinUI(SkinFileEx);
                skinUI1.Active = true;
            }
            else
            {
                skinUI1.LoadSkinFile(SkinFileEx);
                skinUI1.Active = true;
                
            }
        }
        /// <summary> 
        /// 移除皮肤 
        /// </summary> 
        public  void RemoveSkin()
        {
            if (skinUI1 == null)
            {
                return;
            }
            else
            {
                skinUI1.Active = false;
            }
        }

        /// <summary> 
        /// 换肤类型 
        /// </summary> 
        public enum SkinType
        {
            AddyBlueRazorBLUE,
            AncientANCIENT,
            AquanoxDEEP,
            AquanoxSHALLOW2,
            blackBLACK,
            BlackMesaNORMAL,
            BLWINSEVEN,
            ClearLooksBLUE,
            ClearLooksHUMAN,
            ClearLookSYSTEM,
            coronaCORONA12,
            DuoPRO,
            EarthEARTH,
            ElementCLASSIC,
            ElementROYAL,
            ExtensisCOPPERL,
            ExtensisEXTENSIS,
            GUIRelaxCUT,
            GUIRelaxSKYMAN,
            GUIRelaxSUBTLE,
            JadeStyleJADEC,
            KlarheitERGOCOM,
            LE4BLACK,
            LE4DEFAULT,
            lunaBLUE,
            lunaHOMESTEAD,
            lunaMETALLIC,
            MacOSXBLUE,
            MediaCMEDIA1024,
            MNSSTANDART,
            Office2007,
            PlexStyleM6SVRBAR,
            PlexStylePLEXM6BAR,
            ProGeniusBLUE,
            ProLCDPROLCDAC,
            pwrmetalX,
            RoyaleGlassGRAPHITET,
            RoyaleGlassINDIGOT,
            Sand,
            Sea,
            SimpleXpDARKBC,
            SimpleXpLIGHTBC,
            SimpleXpOLIVE,
            SimpleXpREBLUE,
            Sky,
            SlatePDCSLATEC,
            SlatePDCSLATECBT,
            SlateXPSLATE,
            SlateXPSLATEBT,
            SoulunaRemixFinalNORMAL,
            TangoXPBLUE,
            TangoXPOLIVE,
            TangoXPSILVER,
            TigerTGR,
            TigerTGRB2,
            TigerTGRP,
            VistaXPVISTAXPB2,
            VistaXPVISTAXPS2,
            WatercolorBLUE,
            WatercolorERGONOMIC,
            WatercolorOLIVE,
            WatercolorSILVER,
            WEErgoBLUEC,
            wmpxXMP2,
            wmpxXMPX3,
            zuneDEFAULT
        }
        #endregion

 

posted @ 2013-02-20 10:13  指尖的流星  Views(2437)  Comments(0)    收藏  举报