DevExpress皮膚樣式

【時間】html

2016-02-15 11:41:11 天氣晴 沒有霧霾可貴的好天氣!!!程序員

【工具】編程

(1)Visual Studio 2015工具

(2)DevExpress15.2.3post

【感言】學習

        一直以來都在對微軟提供的灰色窗體及控件很反感,可是本身能力水平有限對網上不少大神提出的換膚方案都不甚理解。因而在茫茫的網海中各類百度、各類谷歌去尋找最簡單的換膚方案,期間自學過WPF,WPF雖然能實現界面和業務邏輯代碼的分離,可是WPF網上的資料不多且用戶羣體也不多,遇到問題沒法快速解決掉。通過心裏的一番掙扎,決定先將WPF放一放,可是WPF給我傳遞給我一個思想確實很震撼的,程序員應該把編程的重心放到程序的邏輯上而不是炫酷界面的設計,炫酷界面的設計應該交由專業美工人員。正是在這一思想的影響下我決定試用下專業的.Net控件組,經過一番瞭解DevExpress進入了個人視野,下面我將系統的學習下DevExpress控件組,並將學習心得和編程技巧記錄於此,但願能給DevExpress愛好者起到拋磚引玉的做用,同時也但願你們多提寶貴意見,共同窗習共同進步。測試

【操做方法】ui

Visual Studio 2015和DevExpress15.2.3的安裝我就不說了,有不明白的能夠百度、谷歌一下,遍地都是……this

首先說明下:(1)Visual Studio 2015之後簡稱VS2015  (2)DevExpress15.2.3之後簡稱DV15.2.3spa

(1)啓動VS2015,選擇[文件]>>[新建]>>[項目],按下圖選擇或填寫,名稱的話隨便,僅僅是測試而已。

(2)按照DevExpress給出的建立工程嚮導建立個簡單的空的winform程序,以下圖:

(3)打開新建項目的Program.cs文件,整個項目預覽以下圖:

        從上圖能夠看出DevExpress.BonusSkins.v15.2這個皮膚樣式dll已經默認引入到了新建的項目中,而且從打開的Program.cs文件也能夠看出BonusSkins已經註冊並啓用了窗體皮膚功能,啓用皮膚樣式是DevExpress默認樣式:DevExpress Style。

(3)方法一:切換到窗體設計窗口經過修改窗體的屬性來控制窗體皮膚的樣式,注意默認狀況下修改窗體樣式會影響到窗體中的全部控件的樣式。

例如本例將窗體皮膚修改爲Office 2010 Blue,要想使窗體效果顯現出來必須將UseDefaultLookAndFeel屬性改成False。

(4)方法二:修改Program.cs文件中的程序,以下圖,道理和方法一同樣,只不過用代碼實現而已。可是這種方式在窗體設計窗口不能預覽的到的,推薦使用方法一。

(5)注意:DevExpress默認提供的控件都有個LookAndFeel屬性,修改其中的屬性值能夠單個更改控件的皮膚樣式使其與窗體或其餘控件不一樣。例如:

 

 

出處:https://blog.csdn.net/songyi160/article/details/50667556

=======================================================================================================

  最近要用到devExpress,一句話,很好很強大,比起vs自帶的winform界面,種類和花樣要多了很多,然而,強力的功能帶來了龐大的信息量,因此我打算經過一些小模塊來和你們一塊兒對它進行探討和研究。

  今天先研究一下他的換膚功能。在控件中,其默認提供了18中風格讓咱們選擇,以下圖:

  下面就看看怎麼實現讓界面切換到選中風格的功能。先創建一個項目,引入一個button和一個grid以下圖:

  因爲在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();

  效果以下:

  上面的是比較麻煩的辦法,咱們也能夠用他自身集成的換膚功能來實現這一效果:在winform中拉一個ribbonControl控件,在page頁中添加ribbonGalleryBarItem。

  而後加入引用

using DevExpress.XtraBars.Helpers;

  在窗口加載時讓剛添加的item設置爲皮膚選項:

       private void Form1_Load(object sender, EventArgs e)
        {
            SkinHelper.InitSkinGallery(ribbonGalleryBarItem1);
            this.ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
        }

  這樣就能夠實現下面的效果了:

    

 

  

 

出處:https://www.cnblogs.com/xuekai-to-sharp/p/3759675.html

相關文章
相關標籤/搜索