小试牛刀,皮肤变换就这么简单

本文通过一个简单的示例展示了如何使用DevExpress的DXperience库在Windows窗体应用程序中实现皮肤(UI主题)的动态切换。具体步骤包括添加ComboBoxEdit控件、编写事件处理程序以及初始化皮肤列表。

    上篇随笔简单介绍了DXperience是什么,并给出了一个类似“Hello World”的例子。如果没有看过上篇请点击这里查看《从这里开始,学习DXperience 》。

    我看到评论中有朋友提到了“皮肤”,也就是常说的软件UI方面的内容。那么,我在这里也写个例子,简单的说明一下。看完这个例子后,大家就会明白,所谓“皮肤”的确只是DXperience非常小的一个部分,或者说只是一个功能点。

    接着上篇的内容,先把Program.cs和frmMain.cs准备好。

    1.从工具箱中拖一个DevExpress.XtraEditors.ComboBoxEdit控件到frmMain.cs窗体中。ComboBoxEdit控件在工具箱的位置如下图所示:

    2.为ComboBoxEdit控件添加SelectedIndexChanged事件的方法,实现ComboBoxEdit控件选择项改变后,改变窗体默认皮肤的功能。代码如下:

ContractedBlock.gif ExpandedBlockStart.gif Code
1        private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)
2ExpandedBlockStart.gifContractedBlock.gif        {
3            string skinName = comboBoxEdit1.EditValue.ToString();
4            DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = skinName;
5        }

    3.添加frmMain.cs窗体Load事件的方法,实现frmMain.cs窗体加载后,初始化ComboBoxEdit控件选项的功能。代码如下:

ContractedBlock.gif ExpandedBlockStart.gif Code
 1        private void frmMain_Load(object sender, EventArgs e)
 2ExpandedBlockStart.gifContractedBlock.gif        {
 3            comboBoxEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
 4            initSkinList();
 5        }

 6
 7ExpandedBlockStart.gifContractedBlock.gif        /**//// <summary>
 8        /// 初始化皮肤样式列表
 9        /// </summary>

10        private void initSkinList()
11ExpandedBlockStart.gifContractedBlock.gif        {
12            foreach (DevExpress.Skins.SkinContainer skinContainer in DevExpress.Skins.SkinManager.Default.Skins)
13ExpandedSubBlockStart.gifContractedSubBlock.gif            {
14                comboBoxEdit1.Properties.Items.Add(skinContainer.SkinName);
15            }

16
17            if (comboBoxEdit1.Properties.Items.Count > 0)
18                comboBoxEdit1.SelectedIndex = 0;
19        }

    3.按“F5”启动调试,即可看到实际的效果。如下图所示:

    可以在皮肤样式的下拉选项中选择不同的项来查看变化(XtraTabPage控件不是本文的重点,所以上文中没有提到,大家可以不用理会)。

转载于:https://www.cnblogs.com/neville/archive/2009/11/17/1604422.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值