首页 > 代码库 > 使用xml文件保存DevExpress皮肤选择

使用xml文件保存DevExpress皮肤选择

上篇随笔中写了如何使用DevExpress的皮肤控件,选择一个皮肤之后,如果不保存在本地,下次打开程序还需要重新选择,选择皮肤也就没有意义了,于是想到使用xml文件方式保存皮肤,代码如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using DevExpress.Skins;using DevExpress.LookAndFeel;using DevExpress.UserSkins;using DevExpress.XtraBars.Helpers;using System.Xml;namespace SkinsDemo{    public partial class Form1 : DevExpress.XtraEditors.XtraForm    {        string defaultSkinName;        public Form1()        {            InitializeComponent();            InitSkinGallery();        }            #region 皮肤        //初始化皮肤        void InitSkinGallery()        {            gallerySkins.Manager = barManager1;            SkinHelper.InitSkinGalleryDropDown(gallerySkins, true);            CheckFile();//检查文件            GetXmlSkin();//获取xml主题            UserLookAndFeel.Default.SetSkinStyle(defaultSkinName);//设置主题样式        }        //检查是否有皮肤名称的xml配置文件            public void CheckFile()        {            try            {                if (System.IO.File.Exists("SkinInfo.xml") == false)                {                    CreateXml();                }            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);            }        }        // 创建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");//皮肤            doc.AppendChild(root);//将one,two,插入到root节点下            root.AppendChild(rootone);            doc.Save("SkinInfo.xml");//保存皮肤名称文件为xml格式        }        //读取Xml节点内容        public void GetXmlSkin()        {            try            {                XmlDocument mydoc = new XmlDocument();                mydoc.Load("SkinInfo.xml");//从xml文件中提取皮肤名称                XmlNode ressNode = mydoc.SelectSingleNode("SetSkin");//头和尾                defaultSkinName = ressNode.SelectSingleNode("Skinstring").InnerText;//把提取出来的皮肤名称存到defaultSkinName中            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);            }        }        //保存皮肤        private void galleryDropDown1_GalleryItemClick(object sender, DevExpress.XtraBars.Ribbon.GalleryItemClickEventArgs e)        {            if (gallerySkins.Gallery == null)            {                return;            }            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 = gallerySkins.Gallery.GetCheckedItems()[0].Caption;//主题的描述,保存所选的主题名称,参见GetCheckedItems()[0]函数的解释,主要用这个函数提取皮肤名称                }            }            doc.Save("SkinInfo.xml");        }        #endregion    }}
View Code

 

使用xml文件保存DevExpress皮肤选择