使用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
    }
}

时间: 2024-10-05 02:05:18

使用xml文件保存DevExpress皮肤选择的相关文章

Xml文件保存值不能及时更新

今天在Xml文件中修改了一个值,调试时,发现读取的不是最新值.经过各种调试,还是不能解决.只好把文件项目给编译了一遍,在调试时,把在及时窗口,把变量值给改了一下啊,就是可以读到最新配置了.停止程序,在次启动调试,发现也是新值,在刷新了几次,发现还是一直都没问题.XMl利弊兼有啊.以后修改Xml文件了,全部编译才是王道,不然总是有莫名其妙的问题.再次申明啊,要小心啊. Xml文件保存值不能及时更新

xml文件保存与读取(最基础的方式)

一.从xml文件读取数据到Winform: 1.调用 using System.Xml; 2.XmlDocument xmlDoc = new XmlDocument(); 3.xmlDoc.Load(Application.StartupPath + "\\ParaConfig.xml"); 4.XmlElement xmlRoot = xmlDoc.DocumentElement;5.XmlNode login = xmlRoot.ChildNodes[0];6. this.txb

List<T>保存为XML文件

今天我们学习怎样把List<T>写成一个XML文件保存起来.因为我们在做动态网站开发时,需要对一些不太常变化的数据产生为XML文件,让程序直接去读取,而不是每次是SQL数据库取. 为了解决一个问题,我们得需先创建一个自定义的Result()在ASP.NET MVC中.这个Result操作可以继承ActionResult或者ContentResult. 代码: class XmlResult<T> : ActionResult { public T Data { private ge

【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件

一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生成一个HTML静态页面 二.参考思路: 阶段1:创建xml 添加测试记录不少于三条 阶段2:创建HTML模板文件 阶段3:从xml读取新闻信息,保存在泛型集合中 阶段4:读取模板文件 训练要点: Reader类 需求说明: 读取HTML模板文件news.template,为使用新闻信息替换其中的占位

Xml文件转化为对象,对象转化为Xml

Stream用来将xml转化为对象,或则将对象转化为xml,xml与Json的转化也可以借助它 首先下载jar包: xstream-XXX.jar xpp3-XXX.jar 可以点击这里下载http://download.csdn.net/detail/mejustdoit/8901831 关于转换最主要的就是两个 新建Stream对象 XStream xstream = new XStream();或 XStream xstream = new XStream(new DomDriver())

Android(java)学习笔记185:xml文件生成

1.xml文件: 用元素描述数据,跨平台. 2.利用传统的方式创建xml文件,下面是一个案例: 设计思路:建立一个学生管理系统,创建xml文件保存学生信息: (1)首先是布局文件activity_main.xml文件,如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

Android开发之文件保存读取

Android中文件保存读取可选择在手机本身存储.外存储如SD卡中进行,本文将依次介绍. 1.在手机本身存储保存.读取文件. 布局文件如下:     效果图如下: 在文件名框中填写保存时的文件名,文件内容框填写保存内容,点击保存后即可实现保存至手机本身存储. .java代码如下: MainActivity.java 此处的getApplicationContex()方法(生命周期是整个应用,用MainActivity.this代替时表示获取的是该Activity的上下文,生命周期为该Activi

如何在web.xml文件中引入其他的xml文件

最近在做一个Servlet+javaBean的项目,服务器用的是tomcat.因此,所有的页面都是servlet请求,而且很多,需要在web.xml文件中进行配置.导致web.xml文件特别大,而且这个系统以后会做大,并且会出现系统拆分,为了便于以后拆分,于是想到将web.xml文件中的servlet和servlet-mapping能够从web.xml脱离出来,用其他xml文件保存然后在web.xml文件中引入这些文件,就想类似引入struts.config一样.        在网上找了半天也

PHP操作XML文件学习笔记

原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作方式很多,这次学习的是通过DOMDocument进行操作,其他的操作方法可以参考 http://www.oschina.net/code/snippet_110138_4727 1.对XML文件的遍历 通过DOMDocument对于XML文件的操作的方法:首先要实例化一个DOMDocument类的对