皮肤是一种易于升级的技术。 在新皮肤被创建后,就可以轻易地与支持这种技术的控件进行组合。
全部 DevExpress .NET WinForms 控件 (XtraGrid、XtraVerticalGrid、XtraTreeList、XtraNavBar、XtraBars、XtraPivotGrid、XtraScheduler、XtraReports、XtraForm、XtraTabControl、PanelControl、ButtonEdit 等等) 都支持换肤技术。 皮肤是一套位图,确定了在所有可能的状态下(常规、获得焦点、热跟踪、按下等),控件元素如何被绘制。
使用皮肤的最大优势是,即使在不同的操作系统中,它们也总是有相同的外观。 无论应用程序运行在何种操作系统上 —— Windows XP、 Windows Vista、Windows 2003 server 或 Windows 2000 —— 使用了皮肤的控件都将有同样的外观与感觉。
DevExpress 组件的皮肤被装载在已编译的库中。 要应用某种皮肤,请确保相应的库被添加到项目的“引用”区。 DevExpress.Utils 库包含某些公共的皮肤,诸如 Caramel、Money Twins、Lilian 等等。 当任何 DevExpress 控件/组件被添加到窗体时,这个库会被自动添加到项目的“引用”区。 其他皮肤被装载在外部库中,在需要时必须人工添加到“引用”区。 另外,要使用这些皮肤中的任何一种,那么注册代码必须在运行窗体之前被调用。 参阅 如何: 使用外部皮肤库中的皮肤 主题,来学习更多内容。
自定义皮肤可以使用 SkinEditor 工具来创建。
下表演示了一个使用可用皮肤绘制的网格控件:皮肤 | 库 | 插图 (XtraGrid 控件) |
---|---|---|
Caramel | DevExpress.Utils | |
Money Twins | DevExpress.Utils | |
Lilian | DevExpress.Utils | |
The Asphalt World | DevExpress.Utils | |
iMaginary | DevExpress.Utils | |
Black | DevExpress.Utils | |
Blue | DevExpress.Utils | |
Coffee | DevExpress.BonusSkins | |
Liquid Sky | DevExpress.BonusSkins | |
London Liquid Sky | DevExpress.BonusSkins | |
Glass Oceans | DevExpress.BonusSkins | |
Stardust | DevExpress.BonusSkins | |
Xmas 2008 Blue | DevExpress.BonusSkins | |
Valentine | DevExpress.BonusSkins | |
McSkin | DevExpress.BonusSkins | |
Office 2007 Blue | DevExpress.OfficeSkins | |
Office 2007 Black | DevExpress.OfficeSkins | |
Office 2007 Silver | DevExpress.OfficeSkins | |
Office 2007 Green | DevExpress.OfficeSkins | |
Office 2007 Pink | DevExpress.OfficeSkins |
换肤技术是 外观与感觉机制(Look And Feel mechanism) 的一部分,由 DevExpress .NET WinForms 控件提供。 要为控件选择一种皮肤作为绘制方案,你需要定制该控件的外观与感觉设置,可以通过 LookAndFeel 属性进行访问。 通过使用 DefaultLookAndFeel 组件,也可在同一时刻,为应用程序中的所有控件定制外观与感觉设置。 要在指定的窗体内,提供这种外观与感觉设置的集中管理,则可以使用 XtraForm 窗体来代替标准的 Form 窗体。 参阅 外观与感觉 文档来获取更多信息。
要激活指定的皮肤,你需要定制 LookAndFeel 设置,如下所示:1. UserLookAndFeel.UseDefaultLookAndFeel 属性值应该被设置为 false;
2. UserLookAndFeel.UseWindowsXPTheme 属性值应该被设置为 false;
3. UserLookAndFeel.Style 属性值应该被设置为 LookAndFeelStyle.Skin。
所需的皮肤可以通过 UserLookAndFeel.SkinName 属性进行选择: