首页 > 代码库 > 使用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 }}
使用xml文件保存DevExpress皮肤选择
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。