換膚功能的實現

1、在項目下新建RibbonForm  命名爲:useSkin
2、添加引用DevExpress.OfficeSkins
      DevExpress.UserSkins.BonusSkins

3、將ribbonPage1的Text屬性設置爲:皮膚node

      ribbonPageGroup1的Text屬性設置爲:更換皮膚spa

      在ribbonPageGroup1下新建個ribbonGalleryBarItem1,將其Caption的屬性設置爲:請選擇您喜歡的皮膚,並添GalleryItemClick    事件:ribbonGalleryBarItem1_GalleryItemClick3d

4、在應用程序的主入口裏添加:code

複製代碼
static void Main()
        {
            //皮膚
            DevExpress.UserSkins.OfficeSkins.Register();
            DevExpress.UserSkins.BonusSkins.Register();
            DevExpress.Skins.SkinManager.EnableFormSkins();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Exercises.useSkin());
        }
複製代碼

 

 

5、添加命名空間using System.Xml;orm

在事件ribbonGalleryBarItem1_Click裏添加代碼:xml

複製代碼
private void ribbonGalleryBarItem1_Click(object sender, DevExpress.XtraBars.Ribbon.GalleryItemClickEventArgs e)
        {
            string name = string.Empty;
            string caption = string.Empty;
            if (ribbonGalleryBarItem1.Gallery == null) return;
            caption = ribbonGalleryBarItem1.Gallery.GetCheckedItems()[0].Caption;//主題的描述
            caption = caption.Replace("主題:", "");
            //name = bsiPaintStyle.Manager.PressedLink.Item.Tag.ToString();//主題的名稱
            ribbonGalleryBarItem1.Caption = "主題:" + caption;

            XmlDocument doc = new XmlDocument();
            doc.Load("SkinInfo.xml");
            XmlNodeList nodelist = doc.SelectSingleNode("SetSkin").ChildNodes;
            foreach (XmlNode node in nodelist)
            {
                XmlElement xe = (XmlElement)node;//將子節點類型轉換爲XmlElement類型 
                if (xe.Name == "Skinstring")
                {
                    xe.InnerText = caption;
                }
            }

            doc.Save("SkinInfo.xml");
            //XtraMessageBox.Show("您選擇了主題:" + caption);
        }
複製代碼

添加命名空間blog

using DevExpress.XtraBars.Helpers;
using DevExpress.LookAndFeel;事件

6、添加命名空間using DevExpress.XtraEditors;utf-8

在Load下添加代碼:ci

複製代碼
public string defaultSkinName;//皮膚
        private void useSkin_Load(object sender, EventArgs e)
        {
            SkinHelper.InitSkinGallery(ribbonGalleryBarItem1);
            CheckFile();//檢查文件
            GetXmlSkin();//獲取xml主題
            UserLookAndFeel.Default.SetSkinStyle(defaultSkinName);//設置主題樣式
            ribbonGalleryBarItem1.Caption = "主題:" + defaultSkinName;
        }

        #region 檢查XML文件是否存在
        public void CheckFile()
        {
            try
            {
                if (System.IO.File.Exists("SkinInfo.xml") == false)
                {
                    //XtraMessageBox.Show("不存在XML");
                    CreateXml();
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        #region 建立XML文件

        public void CreateXml()
        {
            XmlDocument doc = new XmlDocument();
            //創建xml定義聲明
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
            doc.AppendChild(dec);

            //建立根節點
            XmlElement root = doc.CreateElement("SetSkin");
            XmlElement rootone = doc.CreateElement("Skinstring");//皮膚


            //將one,two,插入到root節點下
            doc.AppendChild(root);
            root.AppendChild(rootone);
            doc.Save("SkinInfo.xml");
        }

        #endregion

        #region 讀取Xml節點內容

        public void GetXmlSkin()
        {
            try
            {
                XmlDocument mydoc = new XmlDocument();
                mydoc.Load("SkinInfo.xml");
                XmlNode ressNode = mydoc.SelectSingleNode("SetSkin");
                defaultSkinName = ressNode.SelectSingleNode("Skinstring").InnerText;

            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        #endregion

        #endregion
複製代碼

好了,如今就能夠爲本身的窗體選擇喜歡的皮膚了。

看一下效果吧。。。。

       

 

 

天再高,踮起腳尖就能更接近陽光
相關文章
相關標籤/搜索