DevExpress控件实现skin皮肤切换或DevExpress程序窗体外观样式切换非常的容易,如果是C#自带的winform的话,所有的外观可能需要自己自定义,而DevExpress控件要想实现窗体皮肤切换,就非常容易了,在DevExpress BarManager菜单项中实现skin皮肤的切换,下图是效果:
DevExpress控件中有几十种不同的窗体皮肤外观样式,我们只需要选中不同的skin皮肤,就可以让窗体显示不同的外观,包括菜单栏等都会自动产生变化,如下小编切换到了Office 2010 Blue这个外观样式,程序窗体界面就会产生对应的变化,如下:
那么我们该如何使用DevExpress控件在加载BarManager菜单项时就把所有的skin皮肤样式加载出来呢?其实很简单,复制下方代码即可!照着做就能轻松实现DevExpress程序窗体外观样式切换了。
1:我们在我们c#程序中的load初始化方法中先增加两个BarManager菜单选项,这个应该不用小编说了吧(界面上需要拖拽一个BarManager控件,会自动生成barManager1和bar1这两个属性),代码如下:
public void MainPanel_Load(object sender, EventArgs e) { barManager1.BeginUpdate(); BarSubItem item1 = new BarSubItem(barManager1, "外观(A)"); //在外观菜单下初始化所有的skin皮肤样式 InitSkins(item1); BarSubItem item2 = new BarSubItem(barManager1, "窗体(W)"); bar1.AddItems(new BarSubItem[2] { item1,item2}); barManager1.EndUpdate(); }
2:实现InitSkins方法,该方法就是加载所有的skin皮肤样式,并放在了BarButtonItem对象中,作为“外观”菜单的子菜单,并给子菜单绑定点击事件,用于切换C#程序窗体的外观样式,这些样式都是DevExpress控件为我们准备好了的。
private void InitSkins(BarSubItem bi_Appearance) { foreach (SkinContainer skinContainer in SkinManager.Default.Skins) { //skin样式名称 BarButtonItem barButtonItem = new BarButtonItem(barManager1, skinContainer.SkinName); //将样式添加到bi_Appearance(外观)子菜单中 bi_Appearance.AddItem(barButtonItem); barButtonItem.ImageIndex = -1; barButtonItem.ButtonStyle = BarButtonStyle.Check; barButtonItem.GroupIndex = 1; //绑定点击事件 barButtonItem.ItemClick += new ItemClickEventHandler(this.OnSkinClick); } } //绑定的事件 private void OnSkinClick(object sender, ItemClickEventArgs e) { string caption = e.Item.Caption; //将该外观名称设置为C#程序窗体外观样式 UserLookAndFeel.Default.SetSkinStyle(caption); }
我们看到很多桌面软件都可以切换外观,所以使用DevExpress控件来做切换外观样式的功能,非常的简单。