继续转,DXperience换肤

来源:互联网 发布:sai mac下下来打不开 编辑:程序博客网 时间:2024/06/01 07:25

与上一篇同一出处:http://www.cnblogs.com/neville/archive/2009/11/17/1604422.html

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

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

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

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

 

 

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


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

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


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

 6
 7        /// <summary>
 8        /// 初始化皮肤样式列表
 9        /// </summary>

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

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

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

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