Devexpress -换皮肤

一、在项目下新建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

  

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

看一下效果吧。。。。

时间: 2024-10-11 17:46:39

Devexpress -换皮肤的相关文章

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

网页换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里.那么切换CSS其实就是更换html里的link href路径.我在网上搜索了下. 一般有两种方式: 1.页面放一个Holder控件.然后用编程方式把当前用户的风格css link写入页面. 2.过反射机制,逐个控件设置css样式. 上面两种方式都挺麻烦的,第一种需要在每个页面上放一个holder控件,类似的做法还有把link标签加runat=server的做法,页面多了,都比较麻烦.第二种不用考虑了,性能

DevExpress增加皮肤风格选择

1.Run Design 增加一个RibbonGalleryBarItem,命名rgbiSkins2.主窗体构造函数增加 InitSkinGallery();3.增加皮肤初始化函数 void InitSkinGallery() { SkinHelper.InitSkinGallery(rgbiSkins, true); }4.增加一个Group,把皮肤风格rgbiSkins拖进去 DevExpress增加皮肤风格选择

Android Maven打包批量替换资源文件(overlay换皮肤)&AAR打包依赖模块覆盖策略

1.AAR打包覆盖 主module(APK)会将AAR中同名资源覆盖: 策略如下: 资源文件例如图片,layout是采用覆盖方式. values文件例如strings.xml是采用合并方式. 有依赖的模块只能采用aar进行打包,例如ui库等二方库. 建议将所有模块共同的resource资源放到通用module中,并且建立相应的命名机制,防重复. 以后如有业务独立的模块可以打成bundle,bundle可以看成一个独立的apk,拥有独立的资源文件 2. maven支持编译时指定res目录,(和An

Winform 换皮肤

winform换肤流程如下: (1)程序入口,添加以下代码: //换肤 private void Skinjsj() { DevExpress.UserSkins.BonusSkins.Register(); DevExpress.UserSkins.OfficeSkins.Register(); DevExpress.Skins.SkinManager.EnableFormSkins(); FrmSkin f = new FrmSkin(this); f.ShowDialog(this); }

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

1.为了体现系统的个性化,越来越多的系统增加了换肤功能.这里例举一个devexpress实现换肤的案例,效果图对比: 第二张图片中更换了皮肤与字体. 2.皮肤数据源绑定代码: //循环添加皮肤名称 foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.SkinManager.Default.Skins) cmb_skins.Items.Add(skin.SkinName); 3.第二张图与第一张图比较,伸缩Panel显示

DevExpress换肤

procedure TForm1.cxComboBox1PropertiesChange(Sender: TObject); begin // 这个地方必须是UserSkin,不然不会起作用 dxSkinController1.SkinName := 'UserSkin'; dxSkinsUserSkinLoadFromFile('AllSkins.skinres', cxComboBox1.EditText); end; procedure TForm1.dxSkinController1Sk

atitit。gui 界面皮肤以及换肤总结 java .net c++

atitit.gui 界面皮肤以及换肤总结 java .net c++ 1. Swing 的皮肤 1 1.1. windows风格 1 1.2. Mac风格 ( liquid 框架) 1 2. 如何给应用程序添加水印或者说是背景? 2 3. 常用swing皮肤包substance ,, JTattoo 2 c++ 的皮肤 qt 直接支持css 了,容易的.. .net winform雅十立马走生效... Sun公司在设计Swing时考虑到了将控件的视感(Look And Feel) ,也就是外观

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

Devexpress - office - 效果

1.       使用RibbonForm时,修改左上角图标:添加ApplicationMenu1,在属性中找Ribbon->ApplicationIcon,设置图标 2.       隐藏DevExpress XtraRibbon的快捷工具栏:ApplicationMenu1的属性,Ribbon->ShowToolbarCustomizeItem  设置为false 3.       使用NavBarControl设置显示的方式,统一在上方显示:NavBarControl->Paint