在现有WinForms应用中添加C1Themes主题控件

在本博客中,展示了如何在现有的WinForms应用中添加C1Themes控件支持。

本文使用名为C1dView Samples的应用程序,它包含C1Reports。它是基于C1Ribbon界面设计的C1Report/C1PrintDocument浏览应用程序。该应用最初没有包含主题的支持。

C1DView示例下载:C1dView.zip (94.96 kb) (下载次数: 7)

如下描述的简单的步骤,为最终用户提供在程序中选择使用包含于C1Themes控件产品中的若干主题的支持。(请注意:在进行以下操作前请确保已经安装安装了ComponentOne Studio for WinForms的所有控件-C1Reports,C1Command,C1Ribbon与C1Themes。本文使用C#,同样的操作在VB里也是很简单的)

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帮助栏。

3.添加ComboBox项目到Items collection,把它的名字改成rcmbTheme。

4.关闭Collection editor,同时在属性选择下拉菜单中,选出刚刚添加的rcmbTheme项目(C1.Win.C1Ribbon.RibbonComboBox)。切换到事件选项卡,然后为combo添加两个事件处理-ChangeCommitted事件和DropDown事件。rcmbTheme_DropDown handler将为combo统计可用的主题名,而
rcmbTheme_ChangeCommitted 则会在窗体上自动应用选定的主题。同时combo相应标签中的内容也变更为”Theme:”。

5.上述步骤添加到DropDown事件的代码如下所示:

?


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

在现有WinForms应用中添加C1Themes主题控件,布布扣,bubuko.com

时间: 2024-08-23 23:25:37

在现有WinForms应用中添加C1Themes主题控件的相关文章

关于xib中添加collection view 控件引起brash

首先这个问题我没有找到解决的办法,不知道问题出现在哪里,所以在这里贴个博文,看看有大神路过能把问题给解决了. 问题描述: 首先建立了一个新的项目,在stroyboard中添加collection view 控件,遵循其中 UICollectionViewDelegateFlowLayout,UICollectionViewDelegate,UICollectionViewDataSource协议,完成collection view 的显示,都很正常,一切OK,然后我添加一个viewcontrol

UILabel iOS中添加文字的控件

UILabel是iOS中的控件,是UIView的子类,只是在UIView的基础上添加了文字显示功能.UILabel也是视图使用过程和UIView类似 //1.创建视图对象 //2.配置视图属性 //3.添加到父视图 //4.释放所有权 //1.创建对象 UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 40)]; //2.配置属性 //(1.)背景颜色 aLabel.backgroundColor

ASP.NET文本框中添加日期选择控件

1.把文件夹拷贝到解决方案里面: 2.在前台页面添加对js文件的引用: <script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"></script> 3.在要使用日历控件的控件添加click事件:(WdatePicker 为主调函数 ) <asp:TextBox ID="TextBox3&

在DevExpress GridControl中添加进度条控件 z

首先可以使用 DevExpress GridControl 自带的进度条控件. 但是我要用一个方法来设置所有的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色. 那么就要自己手动的编写代码来完成了. 1 .绘制一个单元格进度条形状,当进度小于50%时显示为红色. public void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { string

将MenuStrip控件中的信息添加到TreeView控件中【转载】

本文详细介绍怎样将MenuStrip控件中的信息添加到TreeView控件中 首先在WinForm窗体中添加一个MenuStrip控件和TreeView控件,根据个人的爱好把控件布局好后.在窗体的加载事件中(根据自己的情况而定)添加如下的代码: /// <summary>   /// 窗体加载时事件   /// </summary>   /// <param name="sender"></param>   /// <param n

怎样在VS2013/MFC中使用TeeChart绘图控件

TeeChart作为一款强大好用的绘图控件,通过它可以绘制出各式各样的图表,包括2D的,还有3D的,绘制的图表美观实用,这里主要讲述如何在VS2013/MFC中使用TeeChart控件,顺便说一下在VS2013中如何创建MFC项目. 工具/原料 Visual studio 2013 TeeChart.pro.v5.ActiveX 方法/步骤 1 在网上下载TeeChart控件并安装,安装自然不用多说,安装完后找到安装路径(带有TeeChart5.ocx文件),复制当前路径 2 安装完后需要对控件

在VC++中使用Tab Control控件

系统环境:Windows 7 软件环境:Visual Studio 2008 SP1 本次目的:在模态或非模态对话框中使用Tab Control控件,及引申在单/多文档中使用 查阅MSDN文档,对于创建Tab Control控件,MSDN上说明如下: To use CTabCtrl directly in a dialog box 1.     In the dialog editor, add a Tab Control to your dialog template resource. Sp

repeater中后台动态为控件添加属性

在此贴出repeater中的ItemDataBound事件中的代码: private void ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//**对每一行操作,两种枚举必须都要进行判断 { TextBox tb = e.Item.FindCont

使用VC2008中ATL开发浏览器控件

http://blog.csdn.net/cnjet/article/details/6218355 使用VC2008中ATL开发浏览器控件 2011.03.02 [email protected] 介绍 本文将介绍使用VC2008中的ATL开发一个用于网络部署的cab控件包的过程. 建立ATL项目 打开VS2008,建立一个ATL项目,如下图: 考虑到简介性,选择了"Allow merging of proxy/stub code" 添加ATL控件 (建议先编译一下真个project