• 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

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

    看一下效果吧。。。。

           

  • 相关阅读:
    【Spring注解驱动开发】你了解@PostConstruct注解和@PreDestroy注解吗?
    【Spring注解驱动开发】使用InitializingBean和DisposableBean来管理bean的生命周期,你真的了解吗?
    【Spring注解驱动开发】如何使用@Bean注解指定初始化和销毁的方法?看这一篇就够了!!
    【分布式事务】如何基于消息中间件实现分布式事务?万字长文给你答案!!
    【K8S】Kubernetes中暴露外部IP地址来访问集群中的应用
    【K8S】Service服务详解,看这一篇就够了!!
    【Spring注解驱动开发】面试官让我说说:如何使用FactoryBean向Spring容器中注册bean?
    【K8S】如何进入kubernetes的一个pod
    这是对我最大的认可和鼓励
    我的价值观
  • 原文地址:https://www.cnblogs.com/dreamflycc/p/2685308.html
Copyright © 2020-2023  润新知