How to: Build a Custom End-User Skin Selector

This section explains how to populate a ComboBoxEdit control with DevExpress skin items.
本节介绍如何使用DevExpress皮肤项填充ComboBoxEdit控件。

  • To populate a combo box editor, iterate through the SkinManager.Skins collection, which returns all currently available DevExpress skins, and create a new combo box item for each applicable skin – as illustrated in the code below.
    要填充组合框编辑器,请遍历SkinManager.Skins集合,返回所有当前可用的DevExpress皮肤,并为每个适用的皮肤创建一个新的组合框项目,如下面的代码所示。
//Uncomment the following line to add bonus and theme skins
//DevExpress.UserSkins.BonusSkins.Register();
foreach (SkinContainer cnt in SkinManager.Default.Skins) {comboBoxEdit1.Properties.Items.Add(cnt.SkinName);
}
  • You can implement more complex logic to skip or rename specific skins. For instance, the following code sample excludes the “Caramel” skin and any “Office 2007…” skin, and renames “DevExpress Style” and “DevExpress Dark Style” skins to ”Default Skin” and ”Default Dark Skin”, respectively.
    您可以实现更复杂的逻辑来跳过或重命名特定的皮肤。例如,以下代码示例排除了“焦糖”皮肤和任何“Office 2007…”皮肤,并将“DevExpress Style”和“DevExpress Dark Style”皮肤分别重命名为“Default skin”和“Default Dark skin”。
DevExpress.UserSkins.BonusSkins.Register();
foreach (SkinContainer cnt in SkinManager.Default.Skins) {if (cnt.SkinName.Contains("Office 2007") || cnt.SkinName == "Caramel")continue; if(!cnt.SkinName.Contains("DevExpress"))comboBoxEdit1.Properties.Items.Add(cnt.SkinName);else switch(cnt.SkinName) {case "DevExpress Style":comboBoxEdit1.Properties.Items.Add("Default Skin");break;case "DevExpress Dark Style":comboBoxEdit1.Properties.Items.Add("Default Dark Skin");break;}
}
  • Handle the ComboBoxEdit.SelectedIndexChanged event to apply a corresponding skin when a user selects a combo box item.
    处理ComboBoxEdit。SelectedIndexChanged事件,以在用户选择组合框项目时应用相应的皮肤。
private void ComboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e) {ComboBoxEdit comboBox = sender as ComboBoxEdit;string skinName = comboBox.Text;switch (skinName) {case "Default Skin":DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "DevExpress Style";break;case "Default Dark Skin":DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "DevExpress Dark Style";break;default:DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = skinName;break;}
}
  • Run the application to see the result.
    运行应用程序以查看结果。
    在这里插入图片描述

SkinHelper Methods

DevExpress。XtraBars。帮手SkinHelper类提供多个Init。。。方法,允许您使用外观/调色板项填充自定义控件。

在下图中,两个功能区按钮是自定义皮肤和调色板选择器。BarButtonItem。两个按钮的ButtonStyle属性都等于DropDown。每个按钮都有一个关联的PopupControlContainer分配给BarButtonItem。DropDownControl属性。弹出控件容器承载停靠属性设置为“填充”的库控件。
在这里插入图片描述

The code below demonstrates how to populate these selectors with the InitSkinGallery and InitSkinPaletteGallerymethods.
下面的代码演示了如何使用InitSkinGallery和InitSkinPartiteGallery方法填充这些选择器。

//Container and gallery settings
popupControlContainer1.AutoSize =popupControlContainer2.AutoSize = true;
popupControlContainer1.AutoSizeMode =popupControlContainer2.AutoSizeMode = AutoSizeMode.GrowAndShrink;
galleryControl1.Gallery.AutoSize =galleryControl2.Gallery.AutoSize = GallerySizeMode.Both;//Populate the skin gallery
galleryControl2.Gallery.RowCount = 6;
SkinHelper.InitSkinGallery(galleryControl2);#region Optional Settings
//Uncomment these lines to modify the gallery
//---Enlarge item images
/*foreach (GalleryItem item in galleryControl2.Gallery.GetAllItems())item.ImageOptions.Image = item.ImageOptions.HoverImage;
galleryControl2.Gallery.ImageSize = new Size(48, 48);
galleryControl2.Gallery.AllowHoverImages = false;*/
//---Hide item and group captions
/*galleryControl2.Gallery.ShowItemText = false;
galleryControl2.Gallery.ShowGroupCaption = false;*/
//---Hide group selector
/*galleryControl2.Gallery.AllowFilter = false;*/
//---Remove "Custom Skins" and "Theme Skins" groups
/*galleryControl2.Gallery.Groups.RemoveAt(3);
galleryControl2.Gallery.Groups.RemoveAt(2);*/
#endregion//Populate the palette gallery
galleryControl1.Gallery.ColumnCount = 6;
SkinHelper.InitSkinPaletteGallery(galleryControl1);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字母异位词分组(charyw)

字母异位词分组 题目描述 给定一个字符串数组&#xff0c;将字母异位词组合在一起。字母异位词指字母相同&#xff0c;但排列不同的字符串。 输入格式 第一行正整数n&#xff0c;表示有n个字符串(1<n<1000) 第二行n个字符串&#xff0c;空格隔开 输出格式 多组字母…

Linux基础指令网络管理002

Linux网络管理涉及配置、监控和维护网络接口、路由、防火墙规则、网络服务等&#xff0c;本章主要讲述如何查看网络接口以及管理网络连接。 操作系统&#xff1a; CentOS Stream 9 操作步骤&#xff1a; 查看网络接口及ip信息 指令ipconfig ,如果不能使用该命令先下载 yum …

Qt程序发布工具windeployqt.exe所带来的坑

一、使用Qt自带的发布工具&#xff1a;windeployqt.exe来自动查找运行时库文件&#xff0c;是个好办法。但是该工具有坑&#xff01;并且坑很深&#xff01;我在发布程序时就遇到了一个大坑&#xff01;我使用该工具进行程序发布&#xff0c;自动查找运行时库文件&#xff0c;看…

【c语言】自定义类型----结构体

结构体是c语言的一种自定义类型&#xff0c;自定义类型对于开发者及其重要的类型&#xff0c;它可以随意由开发者进行谱写功能&#xff0c;而今天的结构体可以用来表示一种变量的单个或多种具体属性&#xff0c;再编写代码时有着不可替代的作用&#xff01;&#xff01;&#x…

一个简单的消息队列

目录 原理 实现代码 示例 原理 消息队列是一个先进先出栈&#xff0c;每次都处理第一项&#xff0c;处理完了过后会删除这个消息&#xff0c;这是一个简单的消息队列图&#xff1a; 实现代码 首先消息队列需要一个队列&#xff0c;我们用Python里的列表&#xff1a; self.…

常见的api: BigInteger

一.获取一个大的随机整数 1.代码: BigInteger bd1 new BigInteger(4, new Random());System.out.println(bd1); 2.打印的结果:2 3.注释获取的是0-16之间的随机整数 二.获取一个指定的大的数 1.代码&#xff1a; BigInteger bd2 new BigInteger("100");System.o…

mybatis离谱bug乱转类型

字符串传入的参数被转成了int&#xff1a; Param("online") String online<if test"online 0">and (heart_time is null or heart_time <![CDATA[ < ]]> UNIX_TIMESTAMP(SUBDATE(now(),INTERVAL 8 MINUTE)) )</if><if test"…

人工智能--教育领域的运用

文章目录 &#x1f40b;引言 &#x1f40b;个性化学习 &#x1f988;体现&#xff1a; &#x1f988;技术解析&#xff1a; &#x1f40b;智能辅导与虚拟助手 &#x1f988;体现&#xff1a; &#x1f988;技术解析&#xff1a; &#x1f40b;自动评分与评估 &#x1f…

【react】useEffect 快速上手

useEffect 快速上手 useEffect(setup, dependencies?) 可以接收两个参数&#xff0c;分别是回调函数与依赖数组. useEffect 用什么姿势来调用&#xff0c;本质上取决于你想用它来达成什么样的效果。下面我们来简单介绍 useEffect 的调用规则。 每一次渲染后都执行的副作用&a…

国内拉取国外镜像方法

参考&#xff1a; https://mp.weixin.qq.com/s/-bDrC63J52oSEcIfGcQ7pw 1. github创建仓库 images-sysncer 2. 在此仓库中创建目录 .github/workflows 3. 在此目录中创建文件 sync-image-example.ymlvim sync-image-example.yml name: Sync Image to Aliyun Exampleon:pus…

植物大战僵尸杂交版最新2.0.88手机+电脑+苹果+修改器

在这个充满奇妙的平行宇宙中&#xff0c;植物和僵尸竟然能够和谐共存&#xff01;是的&#xff0c;你没听错&#xff01;一次意外的实验&#xff0c;让这两个看似对立的生物种类发生了基因杂交&#xff0c;创造出了全新的生物种类——它们既能够进行光合作用&#xff0c;也具备…

从零手写实现 nginx-11-文件处理逻辑与 range 范围查询合并

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

C语言中memset()以及memcpy()函数使用方法

memset( ) 在函数memset&#xff08;void *A&#xff0c;int B&#xff0c;int C&#xff09;&#xff1b;语句中&#xff0c;程序完成了将A指针指向的内容开始往后的C个字节内容置为B。 例如下列函数&#xff0c;最终结果是&#xff1a;cps数组内容为&#xff1a;2222222222…

2024年【R2移动式压力容器充装】考试技巧及R2移动式压力容器充装复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R2移动式压力容器充装考试技巧参考答案及R2移动式压力容器充装考试试题解析是安全生产模拟考试一点通题库老师及R2移动式压力容器充装操作证已考过的学员汇总&#xff0c;相对有效帮助R2移动式压力容器充装复审考试学…

Linux 35.5 + JetPack v5.1.3@RACER编译安装

Linux 35.5 JetPack v5.1.3RACER编译安装 1. 源由2. 编译&安装Step 1&#xff1a;依赖库安装Step 2&#xff1a;LKH-3安装Step 3&#xff1a;建立工程Step 4&#xff1a;编译工程Step 5&#xff1a;安装工程 3. 问题汇总3.1 组件ros-noetic-multi-map-server问题3.2 swarm…

监控系统如何选择交换机

一、基础知识 01 摄像机码流 选择交换机前&#xff0c;首先要弄清楚每路图像占用多少带宽&#xff0c;而这个就是码流。 02 摄像机的数量 要弄清楚交换机的带宽容量。常用交换机有百兆交换机、千兆交换机。它们的实际带宽一般只有理论值的 60~70% &#xff0c;所以它们端口的可…

记录:linux桌面管理基础-X11协议(X window system)

1、认识X11 X11是X协议&#xff0c;版本号为11。X协议是专门被设计为linux桌面管理服务的&#xff0c;而linux桌面环境不像windows那样作为系统内核的一部分&#xff0c;作为一个普通程序运行在用户态上。该协议的设计初衷是为了linux的图形界面满足跨平台、跨网络、与具体硬件…

回溯算法举例

回溯算法概述 回溯算法是一种系统地搜索问题解空间的方法,通过逐步构建解决方案,并在发现当前解不满足条件时回溯到上一步,从而尝试其他可能的解。回溯算法广泛应用于组合优化问题、约束满足问题等。 N皇后问题:将N个皇后放置在NN的棋盘上,使得它们互不攻击。数独:填充数…

Web前端岗位深度剖析:必备技能、挑战与未来展望

Web前端岗位深度剖析&#xff1a;必备技能、挑战与未来展望 在数字化飞速发展的今天&#xff0c;Web前端岗位已成为互联网行业的核心力量。它不仅仅是技术的代表&#xff0c;更是连接用户与产品、实现业务价值的关键环节。那么&#xff0c;Web前端岗位究竟要求什么&#xff1f…

DOM型xss靶场实验

DOM型xss可以使用js去控制标签中的内容。 我使用的是一个在线的dom型xss平台&#xff0c;靶场链接&#xff1a;Challenges 第一关Ma Spaghet!&#xff1a; Ma Spaghet! 关卡 <h2 id"spaghet"></h2> <script>spaghet.innerHTML (new URL(locatio…