一、实现效果

1.1、设置全局主题

1.2、设置单窗体主题

1.3、重置全局窗体主题

二、WinForm窗体主题、皮肤操作核心

/***
*   Title:"数据采集" 项目
*       主题:WinForm窗体主题操作
*   Description:
*       功能:
*           1、获取到所有主题
*           2、获取到全局窗体的主题名称
*           3、设置全局窗体的主题
*           4、重置全局窗体的主题
*           5、获取到窗体的主题名称
*           6、设置窗体主题
*           7、重置窗体的主题
*   Date:2021
*   Version:0.1版本
*   Author:Coffee
*   Modify Recoder:
*/using DevExpress.Skins;
using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Utils
{class ThemeOPC{#region   主题操作/// <summary>/// 获取到所有主题/// </summary>/// <returns>返回DevExpress中的所有皮肤</returns>public static SkinContainerCollection GetAllTheme(){//获取到所有主题return SkinManager.Default.Skins;}#endregion #region   全局窗体主题操作/// <summary>/// 获取到全局窗体的主题名称/// </summary>/// <returns>返回当前全局窗体的主题名称</returns>public static string GetGlobalWindowThemeName(){return DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName;}/// <summary>/// 设置全局窗体的主题/// </summary>/// <typeparam name="T">窗体类型</typeparam>/// <param name="form">窗体</param>/// <param name="skinName">皮肤名称</param>/// <returns>返回设置结果(true:表示成功)</returns>public static bool SetGlobalWindowTheme(string skinName) {if (string.IsNullOrEmpty(skinName)) return false;DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(skinName);return true;}/// <summary>/// 重置全局窗体的主题/// </summary>/// <returns>返回重置全局窗体主题结果(true:表示成功)</returns>public static bool ResetGlobalWindowTheme(){DevExpress.LookAndFeel.UserLookAndFeel.Default.Reset();return true;}#endregion#region   窗体主题操作/// <summary>/// 获取到窗体的主题名称/// </summary>/// <returns>返回当前窗体的主题名称</returns>public static string GetWindowThemeName<T>(T form) where T : XtraForm{return form.LookAndFeel.SkinName;}/// <summary>/// 设置窗体主题/// </summary>/// <typeparam name="T">窗体类型</typeparam>/// <param name="form">窗体</param>/// <param name="skinName">皮肤名称</param>/// <returns>返回设置结果(true:表示成功)</returns>public static bool SetWindowTheme<T>(T form, string skinName) where T : XtraForm{if (form == null || string.IsNullOrEmpty(skinName)) return false;form.LookAndFeel.SetSkinStyle(skinName);return true;}/// <summary>/// 重置窗体的主题/// </summary>/// <returns>返回重置窗体主题结果(true:表示成功)</returns>public static bool ResetWindowTheme<T>(T form) where T : XtraForm{form.LookAndFeel.Reset();return true;}#endregion }//Class_end}

三、使用方法

//获取到全局主题
SkinContainerCollection skinContainerCollection =ThemeOPC.GetAllTheme();//获取到本窗体的主题名称
string curWindowThemeName = ThemeOPC.GetWindowThemeName(this);//设置当前窗体主题为选择主题
ThemeOPC.SetWindowTheme(this, "Blue");//重置窗体主题
ThemeOPC.ResetWindowTheme(this);//获取到全局窗体的主题名称
string curGlobalWindowThemeName = ThemeOPC.GetGlobalWindowThemeName();//设置全局窗体主题为当前选择主题
ThemeOPC.SetGlobalWindowTheme("Blue");//重置全局窗体主题
ThemeOPC.ResetGlobalWindowTheme();

四、其他设置窗体主题参考

①DevExpress使用教程:窗体换肤-控件新闻-慧都网 (evget.com)

②Devexpress主题/皮肤 - liessay - 博客园 (cnblogs.com)

③DevExpress Skins<2> - 杜金锋 - 博客园 (cnblogs.com)

DevExpress中动态设置主题、皮肤相关推荐

  1. Activity动态设置主题

    Activity动态设置主题 android:theme 与 setTheme()设置透明效果并不同 一.在Manifest中设置主题 1.设置Application的主题在中添加android:th ...

  2. 微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法

    微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法 参考文章: (1)微信小程序首页index.js获取不到app.js中动态设置的globalDat ...

  3. Quartz在Spring中动态设置cronExpression

    什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定). 这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户修改配置文 ...

  4. Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)

    2019独角兽企业重金招聘Python工程师标准>>> 什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定). 这样总不能修改 ...

  5. 代码中动态设置view或布局的宽高

    有时我们需要在应用中动态改变图片或某一块布局的大小.这就不能用XML文件写成固定值,而需要在java代码中动态设置.效果如下: 网上有一些教程使用relativeView.setLayoutParam ...

  6. vue修改meta值_vue中动态设置meta标签和title标签的方法

    vue中动态设置meta标签和title标签的方法 因为和原生的交互是需要h5这边来提供meta标签的来是来判断要不要显示分享按钮,所有就需要手动设置meta标签,标题和内容 //router内的设置 ...

  7. android 动态设边距,在代码中动态设置页边距 - android

    我有一个只包含ScrollView和TableLayout的活动.在我的代码我加入tablerows,一切工作正常,除了利润 - 它不工作(没有任何反应),下面是代码:在代码中动态设置页边距 - an ...

  8. android 设置 linearlayout 高度,在RelativeLayout中动态设置LinearLayout高度/宽度

    我在RelativeLayout中有一个linearLayout.我需要能够根据屏幕尺寸动态设置线性布局的高度.我有一些困难. 我怎么能做到这一点?在RelativeLayout中动态设置Linear ...

  9. jsp select初始化赋值_分别在javascript和JSP中动态设置下拉列表默认值

    一.JavaScript中动态设置select标签中选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 jsp部分代码如下: 图2 ...

最新文章

  1. 数据表示字面量整型字面量
  2. mysql查询总结_mysql查询总结相关
  3. Shorten command line 解决方案
  4. SQL Server数据库自增字段正确的插入值的描述
  5. 浅谈c语言中的字符串
  6. Java临时缓存API –测试早期草案评审RI
  7. 重磅:服务器基础知识全解终极版(145页PPT)
  8. Linux学习总结(65)——Linux 服务器安全强化的七个步骤
  9. 本机与服务器、镜像机之间文件互传
  10. 转:有时间看看算法书
  11. 【Oracle】解决问题:pl/sql developer 小钥匙图标下拉框中oracle连接串不加粗显示
  12. Win10系统如何在Word中添加新字体
  13. 去摆摊吧,落魄的Java程序员
  14. 牛客 NC24858 [USACO 2009 Nov S]Job Hunt
  15. 联想笔记本linux不能启动无线网卡解决方法
  16. 推荐一些学习类APP
  17. Visio绘制论文文献技术路线图流程图
  18. FPGA概念理解之:ZYNQ、PS、PL、APU、ARM、SOC、URAT、GPIO...
  19. 使用easyexcel快速导出xlsx表格(简洁、高效、易懂)
  20. IDEA 设置保存时自动格式化代码 - 英文界面

热门文章

  1. 博达:经营管理再升级,从选对CRM开始
  2. 关于win10主机共享打印机,其他主机连接不上的解决方法①
  3. CentOS7 安装ClamAV 进行病毒扫描查杀
  4. 追星必备神器 -- 爱豆APP
  5. ThinkPad E40 XP 安装SATA/AHCI驱动
  6. MHT: Basic Methods for Data Association(三)Gating
  7. 2022-2028全球与中国夹层升降机市场现状及未来发展趋势
  8. 2022-2028年全球植入前基因检测收入年复合增长率CAGR为 5.6%
  9. 《MEMDOG:一种基于 Linux 的在线内存检测器》
  10. hdf5格式的matlab读写操作