XtraBars 套件允许继承外观设置,这是本主题的课题。 继承外观选项的意思是如果父对象的外观设置被改变,将立即被它的所有子对象反射。
XtraBars 中的外观继承
在默认情况下,应用程序窗体内的所有停靠控件和 bars 的外观和自定义设置,都由 Default BarAndDocking Controller 提供。 如果需要为属于特定 停靠管理器/BarManager 的停靠控件和 bars 提供不同的设置,则应该使用 BarAndDockingController 组件。 最后,要为个别 bar 或停靠控件提供所需的外观,则应该使用由外观对象提供的 外观继承选项 来覆盖 BarAndDockingController 的外观设置。
下面的插图说明了外观的继承结构。
继承自 BarAndDockingController 的设置都通过在 AppearanceObject.Options 属性中列出的选项进行指定。 应该禁用与继承的外观设置对应的选项。 例如,如果需要使用该控制器的前景色,则把 AppearanceOptions.UseForeColor 属性设置为 false。 关于外观选项的详细信息,请参阅 AppearanceOptions 类的说明。
下表列出了可用的外观选项。
选项 | 说明 |
---|---|
AppearanceOptions.UseBackColor | 获取或设置是否使用 AppearanceObject.BackColor 属性值。 |
AppearanceOptions.UseBorderColor | 获取或设置是否使用 AppearanceOptions.UseBorderColor 属性值。 |
AppearanceOptions.UseFont | 获取或设置是否使用 AppearanceOptions.UseFont 属性值。 |
AppearanceOptions.UseForeColor | 获取或设置是否使用 AppearanceOptions.UseForeColor 属性值。 |
AppearanceOptions.UseImage | 获取或设置是否使用 AppearanceOptions.UseImage 属性值。 |
使用外观选项
我们来考虑一个在定制 bars 时使用外观选项的示例。
当一个新的 Bar 对象被初始化时,它的 Bar.Appearance 属性被自动设置为一个新的 AppearanceObject 实例。 在默认情况下,所有外观选项都被禁用,并且该 bar 的外观设置都由 BarAndDockingController 确定 (BarAndDockingController 已经被指派到拥有当前 bar 的 BarManager 中)。 该控制器为属于当前 BarManager 的 bars 提供了外观和自定义选项。 如果 BarAndDockingController 没有被指定 (BarManager 的 BarManager.Controller 属性值被设置为一个 null 引用),则外观设置由 Default BarAndDocking Controller 指定。
请参阅 Bar 和 Docking 控制器 主题来获得关于使用 BarAndDocking Controller 的具体信息。
下面的插图展示了 bFile bar 的外观与感觉。 背景的设置继承自 BarAndDocking Controller 的 bar 外观设置。
要为个别 bar 覆盖 BarAndDocking Controller 的外观设置,则应该把 bar 的所需外观属性设置为 true。 下面的插图展示了如何覆盖 BarAndDocking Controller 的背景设置。
下面的示例代码演示了如何通过代码完成此任务。
C# | 复制代码 |
---|---|
using System.Drawing.Drawing2D; bFile.Appearance.BackColor = Color.Gray; bFile.Appearance.BackColor2 = Color.White; bFile.Appearance.GradientMode = LinearGradientMode.Vertical; bFile.Appearance.Options.UseBackColor = true; |
Visual Basic | 复制代码 |
---|---|
Imports System.Drawing.Drawing2D bFile.Appearance.BackColor = Color.Gray bFile.Appearance.BackColor2 = Color.White bFile.Appearance.GradientMode = LinearGradientMode.Vertical bFile.Appearance.Options.UseBackColor = True |