在Winform框架界面中改變并存儲界面皮膚樣式的方法
在本篇介紹的Winform界面樣式改變及存儲操作中,是指基于DevExpress進行界面樣式的變化。一般情況下,默認我們會為客戶提供多種DevExpress的界面皮膚以供個人喜好選擇,默認DevExpress提供40余種皮膚樣式,用戶可以根據(jù)自己的喜好,選擇較為美觀、得體的皮膚,為了方便,我們對用戶的皮膚選擇進行記錄,并可以動態(tài)改變。
1、界面皮膚的選擇
Winform開發(fā)框架(包括混合式Winform開發(fā)框架)皮膚如下界面所示。
在皮膚集合中打開,可以看到很多界面皮膚可供選擇
上面初始化的皮膚代碼,是通過調(diào)用SkinHelper的DevExpress內(nèi)在輔助類實現(xiàn)的,通過添加一個RibbonGalleryBarItem控件對象,然后添加如下代碼實現(xiàn)的
DevExpress.XtraBars.Helpers.SkinHelper.InitSkinGallery(rgbiSkins, true);
以及在Ribbon控件上添加一個小的皮膚下拉按鈕,如下代碼所示
this.ribbonControl.Toolbar.ItemLinks.Clear(); this.ribbonControl.Toolbar.ItemLinks.Add(rgbiSkins);
如果我們固定設(shè)置界面一種皮膚,那么調(diào)用下面的代碼直接設(shè)置即可,如下所示。
UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");
2、界面皮膚的保存和顯示
不過,我們?nèi)绻Mつw可以隨意更改并可以存儲到配置文件中,那么我們就需要對它進行一定的加工處理。
首先我們編寫一個設(shè)置皮膚名稱的函數(shù),如下所示。
/// <summary> /// 設(shè)置用戶界面的皮膚 /// </summary> private void SetSkinStyle() { //從配置文件讀取SkinName的值,如無則使用標(biāo)準(zhǔn)樣式 string skinName = config.AppConfigGet("SkinName"); skinName = string.IsNullOrEmpty(skinName) ? "Office 2010 Blue" : skinName; foreach (GalleryItemGroup group in rgbiSkins.Gallery.Groups) { foreach (GalleryItem item in group.Items) { if (string.Concat(item.Tag) == skinName) { item.Checked = true; rgbiSkins.Gallery.MakeVisible(item); UserLookAndFeel.Default.SetSkinStyle(skinName); return; } item.Checked = false; } } }
這樣我們在皮膚改變后,重新讀取配置,并重新設(shè)置界面的皮膚即可。
那么我們需要實現(xiàn)RibbonGalleryBarItem控件對象的單擊事件GalleryItemClick,
如下代碼所示。
rgbiSkins.GalleryItemClick += (object sender, GalleryItemClickEventArgs e) => { config.AppConfigSet("SkinName", string.Concat(e.Item.Tag)); SetSkinStyle(); };
這樣綜合起來就是兩個函數(shù)代碼實現(xiàn)了,如下所示
/// <summary> /// 初始化皮膚設(shè)置 /// </summary> private void InitSkinStyle() { //初始化皮膚樣式名稱 DevExpress.XtraBars.Helpers.SkinHelper.InitSkinGallery(rgbiSkins, true); rgbiSkins.GalleryItemClick += (object sender, GalleryItemClickEventArgs e) => { config.AppConfigSet("SkinName", string.Concat(e.Item.Tag)); SetSkinStyle(); }; this.ribbonControl.Toolbar.ItemLinks.Clear(); this.ribbonControl.Toolbar.ItemLinks.Add(rgbiSkins); this.ribbonControl.Minimized = true;//默認最小化 //UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue"); SetSkinStyle(); } /// <summary> /// 設(shè)置用戶界面的皮膚 /// </summary> private void SetSkinStyle() { //從配置文件讀取SkinName的值,如無則使用標(biāo)準(zhǔn)樣式 string skinName = config.AppConfigGet("SkinName"); skinName = string.IsNullOrEmpty(skinName) ? "Office 2010 Blue" : skinName; foreach (GalleryItemGroup group in rgbiSkins.Gallery.Groups) { foreach (GalleryItem item in group.Items) { if (string.Concat(item.Tag) == skinName) { item.Checked = true; rgbiSkins.Gallery.MakeVisible(item); UserLookAndFeel.Default.SetSkinStyle(skinName); return; } item.Checked = false; } } }
然后在主界面的初始化代碼中進行調(diào)用即可,同時記得在App.Config文件中增加一個SkinName的配置項,方便程序進行存儲皮膚名稱。
這樣就可以實現(xiàn)我們皮膚的變化及存儲功能了,修改皮膚,并重啟程序,系統(tǒng)依舊使用保存好的皮膚,功能符合預(yù)期。
這個功能不算復(fù)雜,提供代碼方便大家進行復(fù)制使用。
以上這篇在Winform框架界面中改變并存儲界面皮膚樣式的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持我們。
欄 目:C#教程
本文標(biāo)題:在Winform框架界面中改變并存儲界面皮膚樣式的方法
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5364.html
您可能感興趣的文章
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新聞效果的方法
- 01-10C#實現(xiàn)Winform中打開網(wǎng)頁頁面的方法
- 01-10winform實現(xiàn)創(chuàng)建最前端窗體的方法
- 01-10WinForm實現(xiàn)自定義右下角提示效果的方法
- 01-10.net2.0+ Winform項目實現(xiàn)彈出容器層
- 01-10winform 實現(xiàn)控制輸入法
- 01-10C#實現(xiàn)將窗體固定在顯示器的左上角且不能移動的方法
- 01-10WinForm實現(xiàn)程序一段時間不運行自動關(guān)閉的方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機閱讀
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實例總結(jié)
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery