DevExpress winform 更换主题

用到的控件有:

DevExpress.XtraBars.Ribbon.RibbonControl ribbonControl1;
DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
DevExpress.XtraBars.RibbonGalleryBarItem ribbonGalleryBarItem1
DevExpress.XtraBars.BarSubItem barSubItem1

添加引用:

using DevExpress.XtraBars.Helpers;
using DevExpress.XtraBars.Localization;
DevExpress.XtraBars.v12.2
DevExpress.BonusSkins.v12.2

DevExpress.XtraBars.Helpers.SkinHelper类允许你填充一个已存在的RibbonGalleryBarItem控件,或者其他的菜单(例如PopupMenu和BarSubItem)的项,当选择一个皮肤的时候,就能自动转变样式。
这回使用的是Ribbon窗体。


using System;
using System.Windows.Forms;
using DevExpress.XtraBars.Helpers;
using DevExpress.XtraBars.Localization;

namespace TestDevExpress
{
    public partial class RibbonForm1 : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public RibbonForm1()
        {
            InitializeComponent();
        }

        private void RibbonForm1_Load(object sender, EventArgs e)
        {
            
            //设置本地化的类
            BarLocalizer.Active = new CastorBarLocalizer();
            SkinHelper.InitSkinGallery(ribbonGalleryBarItem1, true);
            barSubItem1.Caption = "点我选皮肤";
            SkinHelper.InitSkinPopupMenu(barSubItem1);
        }
    }

    //该类确定本地化的实际工作方式
    public class CastorBarLocalizer : BarLocalizer
    {
        public override string GetLocalizedString(BarString id)
        {
            if (id == BarString.SkinCaptions)
            {
                string str = base.GetLocalizedString(id);
                //实现本地化,实际上就是替换字符串
                return str.Replace("|DevExpress Style|", "|Castor的皮肤|");
            }
            return base.GetLocalizedString(id);
        }
    }
}

 如果没有使用语句 BarLocalizer.Active = new CastorBarLocalizer(),则运行效果如下:



 

使用另一种方式填充的效果:




我自己汉化的。首发!!!

 感觉都挺不错的,不过PopupMenu怎么也弄不出来,奇怪了。

   public override string GetLocalizedString(BarString id)

        {

              switch(id)

             {

                case BarString.SkinsMain: return "标准皮肤";

                case BarString.SkinsOffice: return "Office皮肤";

                case BarString.SkinsBonus: return "扩展皮肤";

              }

            if (id == BarString.SkinCaptions)

            {

                string str = base.GetLocalizedString(id);

                //实现本地化,实际上就是替换字符串


                str = str.Replace("|DevExpress Style|", "|默认皮肤|");

                str = str.Replace("|Caramel|", "|佳美|");

                str = str.Replace("|Money Twins|", "|货币双城|");

                str = str.Replace("|Lilian|", "|莉莲|");

                str = str.Replace("|DevExpress Dark Style|", "|默认暗色皮肤|");

                str = str.Replace("|iMaginary|", "|幻想|");

                str = str.Replace("|Black|", "|黑色|");

                str = str.Replace("|Blue|", "|蓝色|");

                str = str.Replace("|Coffee|", "|咖啡|");

                str = str.Replace("|Liquid Sky|", "|清澈的天空|");

                str = str.Replace("|London Liquid Sky|", "|伦敦的天空|");

                str = str.Replace("|Glass Oceans|", "|玻璃海洋|");

                str = str.Replace("|Stardust|", "|凝视|");

                str = str.Replace("|Xmas (Blue)|", "|圣诞(蓝色)|");

                str = str.Replace("|Valentine|", "|默认皮肤|");

                str = str.Replace("|McSkin|", "|苹果皮肤|");

                str = str.Replace("|Summer|", "|夏季|");

                str = str.Replace("|Pumpkin|", "|南瓜|");

                str = str.Replace("|Dark Side|", "|黑暗面|");

                str = str.Replace("|Springtime|", "|春季|");

                str = str.Replace("|Darkroom|", "|暗房色|");

                str = str.Replace("|Foggy|", "|雾色|");

                str = str.Replace("|High Contrast|", "|高度对比|");

                str = str.Replace("|Seven|", "|Win7|");

                str = str.Replace("|Seven Classic|", "|经典 Win7|");

                str = str.Replace("|Sharp|", "|夏普|");

                str = str.Replace("|Sharp Plus|", "|夏普正式|");

                str = str.Replace("|The Asphalt World|", "|沥青世界|");

                str = str.Replace("|Blueprint|", "|蓝色映像|");

                str = str.Replace("|Whiteprint|", "|白色映像|");

                str = str.Replace("|Office 2007 Blue|", "|Office 2007 蓝色|");

                str = str.Replace("|Office 2007 Black|", "|Office 2007 黑色|");

                str = str.Replace("|Office 2007 Silver|", "|Office 2007 银色|");

                str = str.Replace("|Office 2007 Green|", "|Office 2007 绿色|");

                str = str.Replace("|Office 2007 Pink|", "|Office 2007 粉红|");

                str = str.Replace("|Office 2010 Blue|", "|Office 2010 蓝色|");

                str = str.Replace("|Office 2010 Black|", "|Office 2010 黑色|");


                return str;

        

            }

            return base.GetLocalizedString(id);


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值