一、在项目下新建RibbonForm  命名为:useSkin

二、添加引用DevExpress.OfficeSkins
      DevExpress.UserSkins.BonusSkins

三、将ribbonPage1的Text属性设置为:皮肤

ribbonPageGroup1的Text属性设置为:更换皮肤

在ribbonPageGroup1下新建个ribbonGalleryBarItem1,将其Caption的属性设置为:请选择您喜欢的皮肤,并添GalleryItemClick    事件:ribbonGalleryBarItem1_GalleryItemClick

四、在应用程序的主入口里添加:

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());
}

五、添加命名空间using System.Xml;

在事件ribbonGalleryBarItem1_Click里添加代码:

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);
}

  

添加命名空间

using DevExpress.XtraBars.Helpers;
using DevExpress.LookAndFeel;

六、添加命名空间using DevExpress.XtraEditors;

在Load下添加代码:

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

  

好了,现在就可以为自己的窗体选择喜欢的皮肤了。

看一下效果吧。。。。

Devexpress -换皮肤的更多相关文章

  1. 微信小程序换皮肤,动态切换菜单栏和导航栏的样式,动态修改TabBar和NavigationBar

    在做微信小程序换皮肤的时候,需要动态修改菜单栏(TabBar)和导航栏(NavigationBar) 但是在小程序中它们的样式是写在app.json里面,而且app.json是静态编译,运行时哪怕你修 ...

  2. ASP.NET重写Render 加载CSS样式文件和JS文件(切换CSS换皮肤)

    网页换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里.那么切换CSS其实就是更换html里的link href路径.我在网上搜索了下. 一般有两种方式: 1.页面 ...

  3. Winform 换皮肤

    winform换肤流程如下: (1)程序入口,添加以下代码: //换肤 private void Skinjsj() { DevExpress.UserSkins.BonusSkins.Registe ...

  4. devexpress设置皮肤、字体以及折叠菜单、伸缩Panel的实现

    1.为了体现系统的个性化,越来越多的系统增加了换肤功能.这里例举一个devexpress实现换肤的案例,效果图对比: 第二张图片中更换了皮肤与字体. 2.皮肤数据源绑定代码: //循环添加皮肤名称 f ...

  5. windows资源管理器多标签打开 windows文件夹多标签浏览 浏览器tab页面一样浏览文件夹 clover win8 win10 报错 无响应问题怎么解决 clover卡死 clover怎么换皮肤

    大家都知道,我们打开一堆文件夹的时候,是什么样子 “厚厚的一叠”图标堆叠在一起的,非常的不方便 那么,是不是可以像浏览器一样的tab页面展示呢? 答案是可以的 安装好就是这样子的 是不是方便漂亮了很多 ...

  6. DevExpress换肤

    procedure TForm1.cxComboBox1PropertiesChange(Sender: TObject); begin // 这个地方必须是UserSkin,不然不会起作用 dxSk ...

  7. winform 窗体换皮肤,IrisSkin2.dll的用法

    1. 先把IrisSkin2.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin2.dll文件.....之后就不用我 ...

  8. [WPF]资源字典——程序集之间的资源共享 简单换皮肤

    直接上代码,已便已后自己查况阅,新手也可以看! 1.新建一个资料类和一个WPF工程 2.APP.XAML应该资源字典,注意应Source格式,前面一定要有“/” <ResourceDiction ...

  9. DevExpress 去除皮肤的方法

    我从不用皮肤,方法如下:

随机推荐

  1. STL之list

    list是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块,一个前驱指针和一个后驱指针.它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有 ...

  2. php 跨服务器ftp移动文件

    $ftp_server = "120.25.1.1";$ftp_user_name = "p1111";$ftp_user_pass = "psa12 ...

  3. 用 Python 排序数据的多种方法

    用 Python 排序数据的多种方法 目录 [Python HOWTOs系列]排序 Python 列表有内置就地排序的方法 list.sort(),此外还有一个内置的 sorted() 函数将一个可迭 ...

  4. 2017技术核心——Spring

    从毕业从事Java WEB开始到现在已差不多快5年时间了,一直使用的Spring相关的技术,其实最主要的是SpringMVC这一块.其实,一直停留在用的地步,并不知晓其原理,真正耐下心来去研究Spri ...

  5. Codeforces Round #383 (Div. 2) D 分组背包

    给出一群女孩的重量和颜值 和她们的朋友关系 现在有一个舞台 ab是朋友 bc是朋友 ac就是朋友 给出最大承重 可以邀请这些女孩来玩 对于每一个朋友团体 全邀请or邀请一个or不邀请 问能邀请的女孩的 ...

  6. springboot+druid

    最近项目需要搭建新工程,打算使用微服务的形式搭建便于后期拓展.看了一圈发现springboot易于搭建,配置简单,强化注解功能,"just run". Spring Boot ma ...

  7. 一道无限级分类题的 PHP 实现

    今天有网友出了道题: 给出如下的父子结构(你可以用你所用语言的类似结构来描述,第一列是父,第二列是子),将其梳理成类似如图的层次父子结构. origin = [('A112', 'A1122'), ( ...

  8. 提高Baidu Map聚合的效率

    百度的MAP的例子里提供了一个聚合效果,地址是http://developer.baidu.com/map/jsdemo.htm#c1_4 ,效果图如下图: 这个效果很赞,但效率很低,当数据量达到50 ...

  9. JavaScript Array 常用函数整理

    按字母顺序整理 索引 Array.prototype.concat() Array.prototype.filter() Array.prototype.indexOf() Array.prototy ...

  10. 给inpu加背景图,input内容又不能盖着背景图

    问题: 根据需要,给input添加背景图片,又需要点击input及input的这个背景触发事件,但是给input输入内容多时,会覆盖此背景(如下图), 图中,java人员使用插件省市区三级联动,需要i ...