DevExpress 换肤

本文介绍如何使用DevExpress库为Windows窗体应用设置皮肤风格。通过注册皮肤、创建父窗体及皮肤选择窗体来实现全局皮肤更换功能,并提供代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先添加DevExpress.OfficeSkins和DevExpress.BonusSkins 两个引用。

 在Main()函数之前进行皮肤注册:

    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            DevExpress.UserSkins.BonusSkins.Register();//皮肤注册
            DevExpress.UserSkins.OfficeSkins.Register();
            DevExpress.Skins.SkinManager.EnableFormSkins();//激活窗体皮肤,否则窗体还是操作系统默认主题风格
            DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Blue";          
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new XtraForm1());
        }
    }

  

2.添加一个父窗体,加一个全局静态DefaultLookAndFeel 成员控制皮肤,其他所有的窗体都继承该父窗体。

     public partial class frmBase : DevExpress.XtraEditors.XtraForm
    {

        private static DefaultLookAndFeel gLobalDefaultLookAndFeel = new DefaultLookAndFeel();

        public static DefaultLookAndFeel GLobalDefaultLookAndFeel
        {
            get { return frmBase.gLobalDefaultLookAndFeel; }
            set { frmBase.gLobalDefaultLookAndFeel = value; }
        }

        public frmBase()
        {
            InitializeComponent();
        }
    }

3.添加一个控制皮肤的窗体frmSkin:

    public partial class frmSkin : DevExpress.XtraEditors.XtraForm
    {
        public frmSkin()
        {
            InitializeComponent();
        }

        private void frmSkin_Load(object sender, EventArgs e)
        {
            foreach (DevExpress.Skins.SkinContainer skinc in DevExpress.Skins.SkinManager.Default.Skins)
            {
                cboSkins.Properties.Items.Add(skinc.SkinName);
            }
        }

        private void cboSkins_SelectedIndexChanged(object sender, EventArgs e)
        {
            frmBase.GLobalDefaultLookAndFeel.LookAndFeel.SkinName = cboSkins.Text;
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }

则可利用该窗体控制全局皮肤风格:

可根据需要将皮肤主题保存到配置文件中。

转载于:https://www.cnblogs.com/sndnnlfhvk/archive/2012/07/23/2605085.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值