devexpress java_DevExpress使用心得一:换肤

29131e8780a6daece6ca46c26bb73f78.png

最近要用到界面控件DevExpress。一句话:很好很强大,比起VS自带的winform界面,种类和花样要多了不少。然而,强力的功能带来了庞大的信息量,所以我打算通过一些小模块来和大家一起对它进行探讨和研究。今天先研究一下它的换肤功能。在控件中,其默认提供了18中风格让我们选择,如下图:

1d75248b4df8ecfc4c7d4e07d7dd951e.png

下面就看看怎么实现让界面切换到选中风格的功能。先建立一个项目,引入一个button和一个grid如下图:

e245807e99a789b21d0ac28c7bdd1f91.png

由于在devExpress.skins.skinManager.Default.Skins中只有13中皮肤所以我们要手动添加5种,找到Designer.cs文件,添加下列代码:

this.iPaintStyle.CategoryGuid = new System.Guid("d0173875-bf7b-4740-b252-5047db62606c");

this.iPaintStyle.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] {

new DevExpress.XtraBars.LinkPersistInfo(this.ipsDefault),

new DevExpress.XtraBars.LinkPersistInfo(this.ipsWXP),

new DevExpress.XtraBars.LinkPersistInfo(this.ipsOXP),

new DevExpress.XtraBars.LinkPersistInfo(this.ipsO2K),

new DevExpress.XtraBars.LinkPersistInfo(this.ipsO3)});

private DevExpress.XtraBars.BarButtonItem ipsWXP;

private DevExpress.XtraBars.BarButtonItem ipsOXP;

private DevExpress.XtraBars.BarButtonItem ipsO2K;

private DevExpress.XtraBars.BarButtonItem ipsO3;

private DevExpress.XtraBars.BarButtonItem ipsDefault;

this.ipsDefault = new DevExpress.XtraBars.BarButtonItem();

this.ipsWXP = new DevExpress.XtraBars.BarButtonItem();

this.ipsOXP = new DevExpress.XtraBars.BarButtonItem();

this.ipsO2K = new DevExpress.XtraBars.BarButtonItem();

this.ipsO3 = new DevExpress.XtraBars.BarButtonItem();

//

// ipsDefault

//

this.ipsDefault.Caption = "Default";

this.ipsDefault.CategoryGuid = new System.Guid("d0173875- bf7b-4740-b252-5047db62606c");

this.ipsDefault.Description = "Default";

this.ipsDefault.Id = 15;

this.ipsDefault.Name = "ipsDefault";

this.ipsDefault.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ips_ItemClick);

//

// ipsWXP

//

this.ipsWXP.Caption = "Windows XP";

this.ipsWXP.CategoryGuid = new System.Guid("d0173875-bf7b-4740-b252-5047db62606c");

this.ipsWXP.Description = "WindowsXP";

this.ipsWXP.Id = 11;

this.ipsWXP.ImageIndex = 5;

this.ipsWXP.Name = "ipsWXP";

this.ipsWXP.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ips_ItemClick);

//

// ipsOXP

//

this.ipsOXP.Caption = "Office XP";

this.ipsOXP.CategoryGuid = new System.Guid("d0173875-bf7b-4740-b252-5047db62606c");

this.ipsOXP.Description = "OfficeXP";

this.ipsOXP.Id = 12;

this.ipsOXP.ImageIndex = 3;

this.ipsOXP.Name = "ipsOXP";

this.ipsOXP.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ips_ItemClick);

//

// ipsO2K

//

this.ipsO2K.Caption = "Office 2000";

this.ipsO2K.CategoryGuid = new System.Guid("d0173875-bf7b-4740-b252-5047db62606c");

this.ipsO2K.Description = "Office2000";

this.ipsO2K.Id = 13;

this.ipsO2K.ImageIndex = 4;

this.ipsO2K.Name = "ipsO2K";

this.ipsO2K.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ips_ItemClick);

//

// ipsO3

//

this.ipsO3.Caption = "Office 2003";

this.ipsO3.CategoryGuid = new System.Guid("d0173875-bf7b-4740-b252-5047db62606c");

this.ipsO3.Description = "Office2003";

this.ipsO3.Id = 14;

this.ipsO3.ImageIndex = 6;

this.ipsO3.Name = "ipsO3";

this.ipsO3.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ips_ItemClick);

然后将其添加到barManager的项中。

this.barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] {

this.barSubItem1,

this.barSubItem2,

this.ipsWXP,

this.ipsOXP,

this.ipsO2K,

this.ipsO3,

this.ipsDefault,

this.iPaintStyle});

然后添加这几种风格的点击事件。

private void ips_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)

{

barManager1.GetController().PaintStyleName = e.Item.Description;

InitPaintStyle(e.Item);

barManager1.GetController().ResetStyleDefaults();

DevExpress.LookAndFeel.UserLookAndFeel.Default.SetDefaultStyle();

}

然后将皮肤初始化并为其注册选择事件。

private void iPaintStyleStyle_Init()

{

BarItem item = null;

for (int i = 0; i < barManager1.Items.Count; i++)

{

if (barManager1.Items[i].Description == barManager1.GetController().PaintStyleName)

item = barManager1.Items[i];

}

InitPaintStyle(item);

}

private void InitPaintStyle(BarItem item)

{

if (item == null)

{

iPaintStyle.ImageIndex = item.ImageIndex;

iPaintStyle.Caption = item.Caption;

iPaintStyle.Hint = item.Description;

}

}

void InitSkins()

{

barManager1.ForceInitialize();

foreach (DevExpress.Skins.SkinContainer cnt in DevExpress.Skins.SkinManager.Default.Skins)

{

BarButtonItem item = new BarButtonItem(barManager1, skinMask + cnt.SkinName);

iPaintStyle.AddItem(item);

item.ItemClick += new ItemClickEventHandler(OnSkinClick);

}

}

void OnSkinClick(Object sender, ItemClickEventArgs e)

{

string skinName = e.Item.Caption.Replace(skinMask, "");

DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(skinName);

barManager1.GetController().PaintStyleName = "Skin";

iPaintStyle.Caption = iPaintStyle.Hint = e.Item.Caption;

iPaintStyle.Hint = iPaintStyle.Caption;

iPaintStyle.ImageIndex = -1;

}

大功告成:初始化winform的时候调用下面两个方法就可以进行换肤了。

iPaintStyleStyle_Init();

InitSkins();

效果如下:

36fd490708320fe5c4527594a7d6ebf5.png

314a45184cf9d1ddd32a052b0a6e3b28.png

25754144c6ada6b7176957136fcdb3b9.png

转自http://www.cnblogs.com/xuekai-to-sharp/p/3759675.html

慧都学院2017全新DevExpress线下研修班火热报名中!

标签:DevExpress皮肤

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:慧都控件

a6e1590ae4b228073faff3806334194e.png11

好文不易,鼓励一下吧!

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

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

相关文章

《低功耗蓝牙开发权威指南》——第3章低功耗蓝牙的体系结构

本节书摘来自华章社区《低功耗蓝牙开发权威指南》一书中的第3章低功耗蓝牙的体系结构&#xff0c;作者 &#xff08;英&#xff09;Robin Heydon&#xff0c;更多章节内容可以访问云栖社区“华章社区”公众号查看 第3章低功耗蓝牙的体系结构专注简单是我一直以来信奉的价值观。…

1970“变种”bug连WiFi热点iOS设备会变砖?

据悉&#xff0c;该漏洞和此前“1970”的bug有关系&#xff0c;但不完全一样。 威锋网讯&#xff0c;你还记得将 iOS 设备系统时间调至 1970.1.1 会让设备变砖的 bug 么&#xff1f;尽管苹果在 iOS 9.3 中已经将这个 bug 修复&#xff0c;但据安全研究员指出&#xff0c;他们发…

基础拾遗------webservice详解

基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗------接口详解 基础拾遗------泛型详解 基础拾遗-----依赖注入 基础拾遗-----数据注解与验证 基础拾遗-----mongoDB操作 基础…

java gc时自动收dump_Full GC分析:设置Java VM参数实现在Full GC前后自动生成Dump

本文讲解了如何设置JavaVM参数实现在FullGC前后自动生成Dump。共有三个VM参数需要设置&#xff1a;HeapDumpBeforeFullGC 实现在Full GC前dump。HeapDumpBeforeFullGC 实现在Full GC后dump。HeapDumpPath 设置Dump保存的路径设置这些参数的方法&#xff0c;这里总结了四种&…

jquery插件dataTables自增序号。

dataTables官网提供了一种方式&#xff0c;使用后没有达到预期效果&#xff08;js报错&#xff09;&#xff0c;没有深究原因。如果需要&#xff0c;可以按照下面的方式来。 1 $(#dataList).dataTable({2 "language": {3 "sProcessing&…

Maven使用详解

1、maven介绍&#xff1a; 2、pom.xml文件理解&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schema…

java web junit_如何使用junit测试javaweb工程

一:创建一个测试类,建议将测试类单独放在一个包中(在 maven 项目里有测试类专门的存放位置),新建一个Junit Test Case类,下一步 测试类的命名建议是你将要测试的类名Test,然后点 Browse, 你可以选择要进行测试的类(一般选择 Service, 因为 Service 关心的是业务需求),用这种方式…

java代码_Java 代码实现排序算法

阅读本文约需要8分钟 大家好&#xff0c;我是你们的导师&#xff0c;我每天都会在这里给大家分享一些干货内容(当然了&#xff0c;周末也要允许老师休息一下哈)。上次老师跟大家分享了下SpringBootGradle MyBatisPlus3.x搭建企业级的后台分离框架的相关知识&#xff0c;今天跟大…

优秀的开源项目C_适合提高C/C++、网络编程能力的开源项目!不要错过,赶紧收藏...

我们学习每一个编程语言都是有一个项目实战的过程&#xff0c;而对于开发类的编程语言&#xff0c;除了适当的做项目程序外&#xff0c;学习了解其他的开源项目更是一个关键&#xff0c;就比如我们的C/C编程语言的学习。前阵子有一个小伙伴就问到我&#xff0c;我学好C/C基础后…

Opencv分水岭算法——watershed自动图像分割用法

分水岭算法是一种图像区域分割法&#xff0c;在分割的过程中&#xff0c;它会把跟临近像素间的相似性作为重要的参考依据&#xff0c;从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓&#xff0c;封闭性是分水岭算法的一个重要特征。 其他图像分割…

Java Annotation

一、了解注释注释是java1.5 jdk这后引入的特性。Java库自己带的注释有Deprecated, Overwrite等。注释是加在类&#xff0c;方法&#xff0c;变量等上的一种标记。并且&#xff0c;可以通过javaj反射操作把这个标记取出来。主要用途是用于对方法&#xff0c;变量&#xff0c;类等…

pycharm显示全部数据_PyCharm第一次安装及使用教程

pycharm简介PyCharm是一种Python IDE&#xff0c;带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外&#xff0c;该IDE提供了一些高级功能&#xff0c;以用…

笔记本win10玩红警黑屏_【买笔记本电脑差评真的有参考意义?】

每次推荐笔记本电脑都会遇到一个重要的问题就是&#xff1a;“大多数消费者会下意识的去看京东评论&#xff0c;参考买的人是怎么说的&#xff0c;往往会出现不懂电脑的人继续误导不懂的人&#xff0c;导致越来越多的人被误导”本文聊聊关于京东评论究竟有没有参考价值。1&…

java前端接收回显图片_图片上传并回显后端篇

图片上传并回显后端篇我们先看一下效果继上一篇的图片上传和回显&#xff0c;我们来实战一下图片上传的整个过程&#xff0c;今天我们将打通前后端&#xff0c;我们来真实的了解一下&#xff0c;我们上传的文件&#xff0c;是以什么样的形式上传到服务器&#xff0c;难道也是一…

zip直链生成网站_手把手教你如何用飞桨自动生成二次元人物头像

【飞桨开发者说】李思佑&#xff0c;昆明理工大学信息与计算科学大四本科生&#xff1b;2018年和2019年两次获得全国大学生数学建模比赛国家二等奖&#xff1b;2020年美国数学建模比赛获M奖。指导老师&#xff1a;昆明理工大学理学院朱志宁想画出独一无二的动漫头像吗&#xff…

Gradle入门到实战(一) — 全面了解Gradle

声明&#xff1a;本文来自汪磊的博客&#xff0c;转载请注明出处 可关注个人公众号&#xff0c;那里更新更及时&#xff0c;阅读体验更好&#xff1a; 友情提示由于文章是从个人公众号拷贝过来整理的&#xff0c;发现图片没有正常显示&#xff0c;没关注公众号的同学可通过如下…

javaweb 图书管理系统完整代码_看一名Java开发人员以红队思维五分钟审计一套代码(续)...

前言上篇文章的发布引起了很多读者的浏览&#xff0c;有很多读者也催更希望读到续集&#xff0c;作者也收获到读者的鼓励&#xff0c;说明这条路线对大家有帮助&#xff0c;是有意义的。所以&#xff0c;今天作者将继续阐述在审计Java代码时的思路。概述上篇文章所讲的SQL注入和…

爱立信数据分析解决方案抓住物联网发展机遇

爱立信在2016年1月6日至9日于美国拉斯维加斯举办的国际消费电子展&#xff08;CES&#xff09;上推出“用户和物联网数据分析”解决方案。该解决方案将能帮助运营商提高对用户和物联网终端的内部管理效率&#xff0c;同时探索跨越多个垂直领域的新型物联网应用。 用户和物联网数…

JAVA实现在面板中添加图表_Java 创建PowerPoint图表并为其添加趋势线

图表&#xff0c;是指将既得数据用图形的方式表示出来。在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法。本文将通过使用Java程序来演示如何创建PowerPoint图表及为图表添加趋势线。趋势线的运用能够显示数据的变化趋势&#xff0c;同时能够帮助预测数据的未来…

idea设置中文界面_《英雄联盟手游》设置界面中文翻译图分享 外服汉化界面一览...

导读 英雄联盟手游目前以及正式上线了&#xff0c;不过现在的话是没有中文版的&#xff0c;只有外服&#xff0c;所有很多地方是看不懂的&#xff0c;也不明白的&#xff0c;这样的话就需要翻译了&#xff0c;具体要怎么设置会比较&#xff0c;相关的步骤是什么呢&#xff1f;下…