1、准备
当新建“Form”时,选择DevExpress Form为模板,就可以应用DevExpress的主题了。此时,From继承的是“DevExpress.XtraEditors.XtraForm”。默认情况下,系统主题有:
Caramel
Money Twins
Lilian
The Asphalt World
iMaginary
Black
Blue
DevExpress提供了更多的主题, 我们如果应用的话,必须添加以下引用 :
DevExpress..OfficeSkins.v8.1;
DevExpress.BonusSkins.v8.1;
除此之外,必须在“Program.cs”文件在添加如下代码:
DevExpress.UserSkins.BonusSkins.Register();
DevExpress.UserSkins.OfficeSkins.Register();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (!DevExpress.Skins.SkinManager.AllowFormSkins)
{
DevExpress.Skins.SkinManager.EnableFormSkins();
}
Application.Run(new MainForm());
其中“OfficeSkins”中的主题有:
Office 2007 Blue
Office 2007 Black
Office 2007 Silver
Office 2007 Green
Office 2007 Pink
“BonusSkins”的主题有:
Coffee
Liquid Sky
London Liquid Sky
Glass Oceans
Stardust
Xmas 2008 Blue
Valentine
McSkin
(注:本人DevExpress为v8.1版本)
2、添加更换皮肤菜单项
通过“foreach(SkinContainer cnt in SkinManager.Default.Skins){}”可以获取现有所有主题皮肤名称,可以把获取的主题添加到菜单上,让用户选择自己喜爱的主题样式。通过函数“DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(string skinName)”设置主题名称,可以更换主题
示例代码如下(直接加到程序中即可,该示例将初始化时的主题设置为"Office 2007 Blue",大家可自行更改):
public partial class MainForm : DevExpress.XtraEditors.XtraForm
{
BarSubItem ChangeSkin = new BarSubItem();
public MainForm()
{
InitializeComponent();
InitSkins();
}
private void InitSkins()
{
string DefaulSkinName = "Office 2007 Blue";
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(DefaulSkinName);
ChangeSkin.Caption = "更换皮肤";
this.barManager1.Items.Add(ChangeSkin);
this.bar2.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(ChangeSkin), });
foreach (DevExpress.Skins.SkinContainer cnt in DevExpress.Skins.SkinManager.Default.Skins)
{
BarButtonItem item = new BarButtonItem(barManager1,cnt.SkinName);
ChangeSkin.AddItem(item);
item.ImageIndex = -1;
item.ButtonStyle = BarButtonStyle.Check;
item.GroupIndex = 1;
item.ItemClick += new ItemClickEventHandler(On
}
foreach (BarItemLink link in ChangeSkin.ItemLinks)
{
if (link.Item.Caption == DefaulSkinName)
{
link.Item.PerformClick();
}
}
}
void On
{
string skinName = e.Item.Caption;
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(skinName);
}
联系客服