在現有WinForms應用中添加C1Themes主題控件

在本博客中,展現瞭如何在現有的WinForms應用中添加C1Themes控件支持。工具

本文使用名爲C1dView Samples的應用程序,它包含C1Reports。它是基於C1Ribbon界面設計的C1Report/C1PrintDocument瀏覽應用程序。該應用最初沒有包含主題的支持。post

C1DView示例下載:C1dView.zip (94.96 kb) (下載次數: 7)this

以下描述的簡單的步驟,爲最終用戶提供在程序中選擇使用包含於C1Themes控件產品中的若干主題的支持。(請注意:在進行如下操做前請確保已經安裝安裝了ComponentOne Studio for WinForms的全部控件-C1Reports,C1Command,C1Ribbon與C1Themes。本文使用C#,一樣的操做在VB裏也是很簡單的)spa

1.打開C1dView_2010.sln工程,在項目引用中添加C1.Win.C1Themes.4的DLL(如上所述,須要在系統中安裝ComponentOne Studio for WinForms-包含C1Themes): 設計

2.將theme selection combo添加到主程序窗體中的C1Ribbon控件的配置工具欄中。爲此,咱們須要在Visual studio form designer中打開C1dView.cs文件,點擊C1Ribbon控件,而後在相應的屬性窗體中擴展rbnMain ribbon的ConfigToolBar節點。以後,打開Items collection editor,它初始內容只包含Help menu幫助欄。code

 

3.添加ComboBox項目到Items collection,把它的名字改爲rcmbTheme。orm

 

4.關閉Collection editor,同時在屬性選擇下拉菜單中,選出剛剛添加的rcmbTheme項目(C1.Win.C1Ribbon.RibbonComboBox)。切換到事件選項卡,而後爲combo添加兩個事件處理-ChangeCommitted事件和DropDown事件。rcmbTheme_DropDown handler將爲combo統計可用的主題名,而
rcmbTheme_ChangeCommitted 則會在窗體上自動應用選定的主題。同時combo相應標籤中的內容也變動爲」Theme:」。blog

 

5.上述步驟添加到DropDown事件的代碼以下所示:事件

?ip

1
2
3
4
5
6
7
8
9
using C1.Win.C1Themes;
...
private void rcmbTheme_DropDown( object sender, EventArgs e)
{
   rcmbTheme.Items.Clear();
   string [] themes = C1ThemeController.GetThemes();
   foreach ( string theme in themes)
     rcmbTheme.Items.Add(theme);
}

第一行清楚列表以確保下拉菜單展開時沒有多餘信息顯示(或者你能夠將themes的list暫存下來以備複用)。下一行獲取全部可用主題名。由於沒有爲工程添加任何自定義主題,此處可用主題都是集成到C1Themes中的標準主題。以後將這些主題加入combo中供用戶選擇。

6.ChangeCommitted事件中將選定主題應用到窗體中的代碼簡短,以下所示:

?

1
2
3
4
5
6
7
8
using C1.Win.C1Themes;
...
private void rcmbTheme_ChangeCommitted( object sender, EventArgs e)
{
   C1Theme theme = C1ThemeController.GetThemeByName(rcmbTheme.Text, false );
   if (theme != null )
     C1ThemeController.ApplyThemeToControlTree( this , theme);
}

首先調用返回用戶選擇的主題名。第二個參數(false)聲明瞭此處若出現用戶未選定任何主題的狀況程序不須要拋出異常。隨後咱們將選定的主題應用於窗體及其中的全部控件中。

7.通過這樣的簡單操做咱們就已經完成了全部須要的操做。運行應用程序會發現應用主窗體的右上角會出現一個combobox(組合框),其中會列出置於C1Themes中的標準主題。選定其中一個主題,窗體以及其中全部控件的外觀都變爲相應主題風格,以下是VS2013DarkSolar主題選擇後的截圖示例:

 

最後再說幾點:
1.如上描述的方法僅提供集成於C1Themes ssembly的標準主題。要使用其它主題(如使用C1ThemeDesigner製做或更改過的主題),還需額外的步驟。

2.此處並未添加任何代碼使用戶的主題選擇具備持久性,用戶必須每次在程序啓動後本身選定主題(固然,這與讓用戶界面保持友好的原則背道而馳)。作些簡單改變把每次用戶選定的主題名稱保存到應用的配置文件中並在每次應用啓動時自動進行主題設置。更好的是使用C1.Win.C1Themes.C1ThemeLocator類型來替代主題名稱這一簡單的string變量會更好些。

在示例中將主題名稱保存到了settings(配置)中,並將主題應用於新窗體,示例源代碼以下:

C1dView.zip (95.61 kb) (下載次數: 7)

3.這個C1dView應用支持新窗口的建立,須要添加代碼將當前選擇的主題應用到那些窗口。不然新窗口默認使用無主題的外觀設置。

 

轉載聲明:歡迎將本站文章進行轉載、演繹或用於商業目的,轉載時請註明如下信息文章轉自:葡萄城控件產品博客,http://blog.gcpowertools.com.cn原文地址:http://blog.gcpowertools.com.cn/post/2014/07/10/C1Themes-WinForms.aspx

相關文章
相關標籤/搜索