通过 StyleController 组件,可以提供对 Developer Express 控件的外观和绘制样式的集中管理。 本主题描述了此组件,并且提供了一个使用它的示例。
样式控制器(Style Controller)
StyleController 组件允许对一组控件的 外观与感觉 和 外观设置 实现集中管理。 要把控件绑定到样式控制器,则需要把样式控制器指派到控件的 BaseControl.StyleController 属性。 在完成指派之后,控件将使用由样式控制器提供的设置。 对样式控制器的属性作出的更改,会立即反映到所有已绑定控件。
样式控制器提供了下列设置:
属性 | 说明 |
---|---|
StyleController.Appearance |
为绑定控件提供公共外观设置。
每个控件也都提供了一个 Appearance 属性。 如果设置了此属性的特定外观 attribute,则它将覆盖样式控制器的 Appearance 属性的对应 attribute。 |
StyleController.AppearanceDisabled |
为绑定控件提供禁用时的公共外观设置。 这些设置仅对提供了 AppearanceDisabled 属性的控件 (这些是派生于 BaseEdit 类的编辑器) 有效。
如果没有设置 AppearanceDisabled 属性中的特定外观 attribute (例如 BackColor),则当控件被禁用时,将从 StyleController.Appearance 对象获取设置。 |
StyleController.AppearanceDropDown | 为绑定控件的下拉窗口提供公共外观设置。 这些设置仅对派生于 PopupBaseEdit 类的弹出式编辑器有效。 这些编辑器也提供了一个 AppearanceDropDown 属性。 |
StyleController.AppearanceDropDownHeader | 为绑定控件的下拉窗口标头提供公共外观设置。 这些设置仅对 LookUpEdit 和 DateEdit 编辑器有效。 这些编辑器也提供了一个AppearanceDropDownHeader 属性。 |
StyleController.AppearanceFocused |
为绑定控件提供获得焦点时的公共外观设置。
如果没有设置 AppearanceFocused 属性中的特定外观 attribute (例如 BackColor),则当控件获得焦点时,将从 StyleController.Appearance 对象获取设置。 |
StyleController.BorderStyle | 指定绑定控件的边框样式。 该属性总是覆盖绑定控件的 BorderStyle 属性。 |
StyleController.ButtonsStyle | 指定绑定编辑器中的编辑器按钮的样式。 该属性总是覆盖绑定编辑器的 ButtonsStyle 属性。 |
StyleController.LookAndFeel | 指定绑定控件的外观与感觉。 该属性总是覆盖绑定控件的 LookAndFeel 属性。 |
StyleController.PopupBorderStyle | 指定绑定编辑器的弹出窗口的样式。 该属性总是覆盖绑定编辑器的 PopupBorderStyle 属性。 |
覆盖样式控制器的外观设置
覆盖外观设置的机制如下。 如果设置了控件的外观对象的特定 attribute (例如 BackColor 属性),则它将覆盖样式控制器的外观属性的对应 attribute。
示例
假设某个样式控制器为一个文本编辑器、按钮编辑器和列表框控件提供公共的外观和外观与感觉设置。 样式控制器被自定义,如下所示:
接下来,这个样式控制器被指派到控件。 在下面的插图中,它被指派到一个文本编辑器:
现在,如果运行此应用程序,则绑定控件的外观如下图中显示的那样:
假设文本编辑器的文本颜色应该与由样式控制器公开的公共颜色不同。 要执行此操作,只需要把文本编辑器的 Appearance.ForeColor 属性设置为所需的值:
定制的最终结果如下所示。 注意,文本编辑器的背景色没有受到其 Appearance.ForeColor 属性变动的影响。 其背景色仍然从样式控制器中获取。
要获得关于外观机制的详细信息,请参阅 外观(Appearances) 文档。
下列代码与上述插图说明的设计时刻的定制操作等效:C# | 复制代码 |
---|---|
// Set the foreground color of the text editor. textEdit1.Properties.Appearance.ForeColor = Color.BlueViolet; // Bind the controls to the style controller. textEdit1.StyleController = styleController1; buttonEdit1.StyleController = styleController1; listBoxControl1.StyleController = styleController1; // Customize the style controller's appearance settings. styleController1.Appearance.BackColor = Color.LightYellow; styleController1.Appearance.Font = new Font("Tahoma", 8); styleController1.Appearance.ForeColor = Color.SaddleBrown; // Customize the style controller's look and feel settings. styleController1.LookAndFeel.UseDefaultLookAndFeel = false; styleController1.LookAndFeel.UseWindowsXPTheme = false; styleController1.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; |
Visual Basic | 复制代码 |
---|---|
' Set the foreground color of the text editor. TextEdit1.Properties.Appearance.ForeColor = Color.BlueViolet ' Bind the controls to the style controller. TextEdit1.StyleController = StyleController1 ButtonEdit1.StyleController = StyleController1 ListBoxControl1.StyleController = StyleController1 ' Customize the style controller's appearance settings. StyleController1.Appearance.BackColor = Color.LightYellow StyleController1.Appearance.Font = New Font("Tahoma", 8) StyleController1.Appearance.ForeColor = Color.SaddleBrown ' Customize the style controller's look and feel settings. StyleController1.LookAndFeel.UseDefaultLookAndFeel = False StyleController1.LookAndFeel.UseWindowsXPTheme = False StyleController1.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat |