用到的控件有:
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);