外观与感觉机制通过 UserLookAndFeel 类封装,并且每个支持这种机制的 DevExpress 控件都提供了该类的 LookAndFeel 属性。 此外,有一个静态的 Default LookAndFeel 对象,缺省时它为所有在应用程序内的控件提供了外观与感觉设置。 默认的 LookAndFeel 设置可以通过 UserLookAndFeel.Default 静态属性或者 DefaultLookAndFeel 组件进行调整。
下面的插图举例说明了一个按钮编辑器的 LookAndFeel 设置:
在可以禁用所有其他设置的 LookAndFeel 对象中有两种设置(UseDefaultLookAndFeel 和 UseWindowsXPTheme)。
UseDefaultLookAndFeel 设置
如果控件的 UserLookAndFeel.UseDefaultLookAndFeel 属性值设置为 true,那么此控件的 LookAndFeel 对象的所有其他设置都被忽略。 在这种情况下,控件的当前绘制方案由 Parent LookAndFeel 对象或 Default LookAndFeel 对象确定,这取决于 UserLookAndFeel.ParentLookAndFeel 属性是否引用了一个有效的对象。
UserLookAndFeel.ParentLookAndFeel 属性让你为控件的 LookAndFeel 对象指定 Parent LookAndFeel 对象。例如,你可以创建一个 UserLookAndFeel 对象,并把它指派到一组控件的 UserLookAndFeel.ParentLookAndFeel 属性。 如果所有这些控件的 UseDefaultLookAndFeel 属性都设置为 true,那么被使用由 Parent LookAndFeel 确定的方案来绘制它们。
通常仅在少数情况下,你需要把 Parent LookAndFeel 对象指派到控件,因为有更精巧的方式来集中控制一组控件的 LookAndFeel 设置 (请参阅下面的章节)。如果 Parent LookAndFeel 没有被指派到控件(UserLookAndFeel.ParentLookAndFeel 属性值设置为 null),并且 UseDefaultLookAndFeel 被设置为 true, 那么此控件的绘制方案通过静态的 Default LookAndFeel 来确定。缺省时,所有控件都使用 Default LookAndFeel 公开的设置。
要定制 Default LookAndFeel 的设置,你可以把 DefaultLookAndFeel 组件放置到一个窗体上:
对 Default LookAndFeel, UseWindowsXPTheme、 Style 和 SkinName 设置可被定制,并且确定 Default LookAndFeel 对象所公开的绘制方案。 参阅下面的段落来学习这些选项如何创建由 LookAndFeel 对象公开的绘制方案。如果有多个窗体,那么也不需要把 DefaultLookAndFeel 组件都添加到每个窗体中。 定制一个单独的 DefaultLookAndFeel 将影响所有窗体中的控件的外观设置。
如果某个控件的 UserLookAndFeel.UseDefaultLookAndFeel 属性值设置为 false, 那么此控件的绘制方案依照 UserLookAndFeel.UseWindowsXPTheme 属性值来确定。
UseWindowsXPTheme 设置
UserLookAndFeel.UseWindowsXPTheme 属性指定是否为控件使用 XP 绘制。 对于一个控件,当它的 UserLookAndFeel.UseDefaultLookAndFeel 属性值设置为 false 时,此设置生效。 对于 Default LookAndFeel 对象,此设置总是被考虑。如果 UseWindowsXPTheme 属性值设置为 true,并且某个 XP 主题可用,则 UserLookAndFeel.Style 属性值被忽略,并且此控件被使用当前的 XP 主题绘制。 如果 UseWindowsXPTheme 设置为 true,但是操作系统不支持 XP 主题,或者当前使用了 Windows 经典主题,那么此控件的实际绘制样式由 UserLookAndFeel.Style 属性来确定。
如果 UseWindowsXPTheme 属性值设置为 false,那么 LookAndFeel 的绘制方案由 UserLookAndFeel.Style 属性来确定。
Style 设置
UserLookAndFeel.Style 属性允许你选择绘制方案(Flat、UltraFlat、Style3D、Office2003 或 Skin)。
控件的 UserLookAndFeel.Style 属性在下列情况下生效:- 它的 UseDefaultLookAndFeel 和 UseWindowsXPTheme 属性值被设置为 false
- 它的 UseDefaultLookAndFeel 属性值设置为 false, UseWindowsXPTheme 属性值设置为 true,但是某个 XP 主题不可用。
- 它的 UseWindowsXPTheme 属性值设置为 false
- 它的 UseWindowsXPTheme 属性值设置为 true,但是某个 XP 主题不可用。
如果 UserLookAndFeel.Style 属性值设置为 LookAndFeelStyle.Skin,那么绘制方案由 UserLookAndFeel.SkinName 属性指定的皮肤来确定。
SkinName 设置
当 UserLookAndFeel.Style 属性值设置为 LookAndFeelStyle.Skin 时,此属性指定了所使用皮肤的名称。皮肤是一套位图,确定了在不同的状态下(常规、获得焦点、热跟踪、按下等),控件元素如何被绘制。 有大量的可在应用程序中使用的皮肤。 如果使用皮肤来绘制某个控件,那么在所有机器上它的外观都将完全相同(不管系统是否支持 XP 主题)。
总结
关于控件的 LookAndFeel 对象的不同设置是如何影响控件外观的信息,在下表中进行了总结:
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
由 Default LookAndFeel 的设置来确定。 |
|
|
|
UltraFlat Style3D Office2003 |
|
|
|
|
The Asphalt World Liquid Sky Coffee Stardust Glass Oceans |
|
|||
|
UltraFlat Style3D Office2003 |
|
|
|
|
|
The Asphalt World Liquid Sky Coffee Stardust Glass Oceans |
|
注意 |
---|
1. 操作系统支持 XP 主题,并且应用了一个 XP 主题。 2. 操作系统不支持 XP 主题; 或者虽然操作系统支持 XP 主题,但是当前所应用的主题不是其中之一。 |