国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

在Winform框架界面中改變并存儲界面皮膚樣式的方法

2020-01-24 00:24:23
字體:
來源:轉載
供稿:網友

在本篇介紹的Winform界面樣式改變及存儲操作中,是指基于DevExpress進行界面樣式的變化。一般情況下,默認我們會為客戶提供多種DevExpress的界面皮膚以供個人喜好選擇,默認DevExpress提供40余種皮膚樣式,用戶可以根據自己的喜好,選擇較為美觀、得體的皮膚,為了方便,我們對用戶的皮膚選擇進行記錄,并可以動態改變。

1、界面皮膚的選擇

Winform開發框架(包括混合式Winform開發框架)皮膚如下界面所示。

在皮膚集合中打開,可以看到很多界面皮膚可供選擇

上面初始化的皮膚代碼,是通過調用SkinHelper的DevExpress內在輔助類實現的,通過添加一個RibbonGalleryBarItem控件對象,然后添加如下代碼實現的

DevExpress.XtraBars.Helpers.SkinHelper.InitSkinGallery(rgbiSkins, true);

以及在Ribbon控件上添加一個小的皮膚下拉按鈕,如下代碼所示

this.ribbonControl.Toolbar.ItemLinks.Clear();this.ribbonControl.Toolbar.ItemLinks.Add(rgbiSkins);

如果我們固定設置界面一種皮膚,那么調用下面的代碼直接設置即可,如下所示。

UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");

2、界面皮膚的保存和顯示

不過,我們如果希望皮膚可以隨意更改并可以存儲到配置文件中,那么我們就需要對它進行一定的加工處理。

首先我們編寫一個設置皮膚名稱的函數,如下所示。

/// <summary>  /// 設置用戶界面的皮膚  /// </summary>  private void SetSkinStyle()  {   //從配置文件讀取SkinName的值,如無則使用標準樣式   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;    }   }  }

這樣我們在皮膚改變后,重新讀取配置,并重新設置界面的皮膚即可。

那么我們需要實現RibbonGalleryBarItem控件對象的單擊事件GalleryItemClick,

如下代碼所示。

rgbiSkins.GalleryItemClick += (object sender, GalleryItemClickEventArgs e) =>{ config.AppConfigSet("SkinName", string.Concat(e.Item.Tag)); SetSkinStyle();};

這樣綜合起來就是兩個函數代碼實現了,如下所示

/// <summary>  /// 初始化皮膚設置  /// </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>  /// 設置用戶界面的皮膚  /// </summary>  private void SetSkinStyle()  {   //從配置文件讀取SkinName的值,如無則使用標準樣式   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;    }   }  }

然后在主界面的初始化代碼中進行調用即可,同時記得在App.Config文件中增加一個SkinName的配置項,方便程序進行存儲皮膚名稱。

這樣就可以實現我們皮膚的變化及存儲功能了,修改皮膚,并重啟程序,系統依舊使用保存好的皮膚,功能符合預期。

這個功能不算復雜,提供代碼方便大家進行復制使用。

以上這篇在Winform框架界面中改變并存儲界面皮膚樣式的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新营市| 香河县| 柘荣县| 互助| 隆德县| 康平县| 五家渠市| 清水县| 邵阳县| 大同市| 和平县| 沅江市| 聂拉木县| 南江县| 兴山县| 泰和县| 滁州市| 团风县| 平邑县| 普兰店市| 莆田市| 成安县| 青岛市| 红河县| 龙江县| 新建县| 合山市| 肇东市| 孟州市| 修文县| 漳浦县| 宁陵县| 盐亭县| 津南区| 铜山县| 安达市| 玉环县| 平利县| 武安市| 庆元县| 奈曼旗|