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.pswp.cn/news/395149.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395149.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395149.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《低功耗藍牙開發權威指南》——第3章低功耗藍牙的體系結構

本節書摘來自華章社區《低功耗藍牙開發權威指南》一書中的第3章低功耗藍牙的體系結構&#xff0c;作者 &#xff08;英&#xff09;Robin Heydon&#xff0c;更多章節內容可以訪問云棲社區“華章社區”公眾號查看 第3章低功耗藍牙的體系結構專注簡單是我一直以來信奉的價值觀。…

[福建集訓2011][LOJ10111]相框

這題主要還是分類討論歐拉回路 首先對于導線一端沒有東西的新建一個節點 由于原圖不一定連通所以需要用到并查集判斷有多少個連通塊 將一條導線連接的兩個焊點連接 然后先對于只有一個連通塊考慮 1.如果一個焊點是孤立點 它對于導線無影響跳過 2.如果一個焊點度數大于2 它必須被…

TJpgDec—輕量級JPEG解碼器

TJpgDec—輕量級JPEG解碼器 本文由烏合之眾lym瞎編&#xff0c;歡迎轉載blog.cnblogs.net/oloroso 下文中解碼一詞皆由decompression/decompress翻譯而來。 TJpgDec是一個為小型嵌入式系統高度優化的創建JPEG圖像的解碼模塊。它工作時占用的內存非常低&#xff0c;以便它可以集…

幫助中心 開源_對開源的貢獻幫助我獲得了Microsoft的實習機會。 這就是它可以為您提供幫助的方式。

幫助中心 開源“Accomplished X by implementing Y which led to Z.” “通過實現導致Z的Y來完成X。” When I interviewed for software engineering internships this past fall, my open source contributions helped me stand out from the crowd.去年秋天&#xff0c;當我…

java 操作窗口_java selenium (十二) 操作彈出窗口

public static void testMultipleWindowsTitle(WebDriver driver) throws Exception{String url"E:\\StashFolder\\huoli_28hotmail.com\\Stash\\Tank-MoneyProject\\Selenium Webdriver\\AllUIElement.html";driver.get(url);// 獲取當前窗口的句柄String parentWin…

1970“變種”bug連WiFi熱點iOS設備會變磚?

據悉&#xff0c;該漏洞和此前“1970”的bug有關系&#xff0c;但不完全一樣。 威鋒網訊&#xff0c;你還記得將 iOS 設備系統時間調至 1970.1.1 會讓設備變磚的 bug 么&#xff1f;盡管蘋果在 iOS 9.3 中已經將這個 bug 修復&#xff0c;但據安全研究員指出&#xff0c;他們發…

Centos7 安裝python3.7.2

下載python3.7.2源碼 wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz 下載完后對壓縮包解壓縮 tar -xf Python-3.6.3.tgz 進入解壓縮完后的文件夾: cd Python-3.7.2 配置&#xff08;需要加上--with-ssl&#xff0c;不然pip不能安裝相關函數庫&#xff0c;pyt…

華為 9

package NiukeBrush; import java.util.Iterator; //排序與查重 import java.util.LinkedHashSet; import java.util.Scanner; import java.util.Set;//改進做法 public class Huawei9next {public static void main(String[] args) {// TODO Auto-generated method stub//鍵盤…

印刷點陣字體_印刷術如何確定可讀性:襯線與無襯線,以及如何組合字體。

印刷點陣字體by Harshita Arora通過Harshita Arora For digital design, it’s important to know and understand how to use and how to combine different fonts. There’s a font for every mood!對于數字設計&#xff0c;重要的是了解和理解如何使用以及如何組合不同的字…

java中setattribute_淺談Java web 中request的setAttribute()用法

在兩個JSP代碼片中有這樣兩端程序&#xff1a;JSP1代碼String [] testnew String[2];test[0]"1";test[1]"2";request.setAttribute("test",test) ;response.sendRedirect("jsp2.jsp");JSP2代碼String test[](String[])request.getAttr…

基礎拾遺------webservice詳解

基礎拾遺 基礎拾遺------特性詳解 基礎拾遺------webservice詳解 基礎拾遺------redis詳解 基礎拾遺------反射詳解 基礎拾遺------委托詳解 基礎拾遺------接口詳解 基礎拾遺------泛型詳解 基礎拾遺-----依賴注入 基礎拾遺-----數據注解與驗證 基礎拾遺-----mongoDB操作 基礎…

南京打造大數據創新孵化平臺

9月9日上午&#xff0c;南京微軟云暨移動應用孵化平臺在南京開發區新港高新園揭牌運營&#xff0c;項目創業大賽同步啟動。 據悉&#xff0c;南京微軟云暨移動應用孵化平臺將打造以“云物大智”產業為核心的創新創業孵化平臺。平臺代理總經理童雪松介紹&#xff0c;平臺匯集了強…

react控制組件中元素_React Interview問題:瀏覽器,組件或元素中呈現了什么?

react控制組件中元素by Samer Buna通過Samer Buna React Interview問題&#xff1a;瀏覽器&#xff0c;組件或元素中呈現了什么&#xff1f; (React Interview Question: What gets rendered in the browser, a component or an element?) **技巧問題** (** Trick Question *…

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…

諾基亞報告稱:到2020年北美電子郵件流量占比將跌至7%

日前&#xff0c;諾基亞貝爾實驗室下屬貝爾實驗室咨詢部門&#xff08;Bell Labs Consulting&#xff09;發布研究報告稱&#xff0c;在北美&#xff0c;千禧一代青少年和青壯年消費群體正逐漸壯大&#xff0c;受其驅動的視頻通信流量占比將由47%增至86%。隨著視頻通話和視頻會…

開源貢獻 計算_我的第一個Hacktoberfest-第一次為開源做貢獻的經驗

開源貢獻 計算by Sibylle Sehl通過Sibylle Sehl 我的第一個Hacktoberfest-第一次為開源做貢獻的經驗 (My First Hacktoberfest — Experiences of Contributing to Open Source as a First Timer) Contributing to Open Source and projects can seem like a daunting process…

java web junit_如何使用junit測試javaweb工程

一:創建一個測試類,建議將測試類單獨放在一個包中(在 maven 項目里有測試類專門的存放位置),新建一個Junit Test Case類,下一步 測試類的命名建議是你將要測試的類名Test,然后點 Browse, 你可以選擇要進行測試的類(一般選擇 Service, 因為 Service 關心的是業務需求),用這種方式…

文件系統及程序的限制關系: ulimit

想像一個狀況&#xff1a;我的 Linux 主機里面同時登陸了十個人&#xff0c;這十個人不知怎么搞的&#xff0c; 同時打開了 100 個文件&#xff0c;每個文件的大小約 10MBytes &#xff0c;請問一下&#xff0c; 我的 Linux 主機的內存要有多大才夠&#xff1f; 1010010 10000…