使用 .NET 的 ButtonBar 控件






4.95/5 (36投票s)
带主题的ButtonBar控件,

引言
Buttonbar
控件提供
- 键盘支持
- 完整的设计器支持
- 自定义绘图支持
特点
ButtonBar
控件具有以下特性
- 6 种预定义主题
- 支持 Alpha 混合图像
- 完整的键盘支持
- 完整的设计时支持
- 支持保存/加载布局颜色
- 支持禁用背景色
- 支持热键
Using the Code
此控件是垂直排列的按钮数组。
使用设计器微调外观。

键盘
- Enter 键 - 选择按钮。通过箭头键移动或将鼠标悬停在按钮上选择并按 Enter 键。
- 向下键 - 移动到下一个按钮。
- 向上键 - 移动到上一个按钮。
关注点
ButtonBar
属性
Appearance
- 包含全局外观信息的Appearance
对象。ButtonWidth
- 按钮宽度。控件根据按钮调整大小。DisableTransparency
- 获取或设置禁用状态的透明度。ImageTransparency
- 获取或设置背景图像的透明度。Items
- 按钮集合。Padding
- 获取或设置按钮与控件边界的距离。SelectedItem
- 获取当前选定的按钮。ShowBorders
- 获取或设置是否显示边框。Spacing
- 获取或设置按钮之间的距离。ThemeProperty
- 用于获取或设置应使用哪个主题的属性。另请参阅ThemeProperty
。UseMnemonic
- 指示是否使用快捷键。
事件
BarClick
- 当 Bar 被点击时发生。当点击按钮以外的区域时触发。CustomDrawBackGround
- 当ButtonBar
请求绘图时发生。可用于实现自定义绘图。CustomDrawItems
- 当BarItem
请求绘图时发生。可用于实现自己的绘图。ItemClick
- 当按钮被按下时发生。当快捷键或 Enter 键被按下时也触发。ItemsChanged
- 当Items
的BarItem
改变时发生。ItemsChanging
- 当Items
的BarItem
正在改变时发生。ItemsClearing
- 当Items
正在清除时发生。ItemsInserted
- 当Items
的BarItem
被插入集合时发生。ItemsInserting
- 当BarItem
正在插入Items
时发生。ItemsRemoved
- 当Items
的BarItem
从集合中移除时发生。ItemsRemoving
- 当BarItem
正在从 Items 中移除时发生。SelectionChanged
- 当按钮选择改变时发生。SelectionChanging
- 当按钮选择即将改变时发生。
方法
HitTestInfo HitTest(Point pt)
- 对指定的点执行HitTest
。pt
是点击的Point
。返回包含点击相关信息的HitTestInfo
对象,例如位置、按钮索引等。HitTestInfo HitTest(int x, int y)
- 对指定的点执行HitTest
。x
和y
是点击的Point
的坐标。返回包含点击相关信息的HitTestInfo
对象,例如位置、按钮索引等。bool ExportAppearance(string fileName)
- 将 Calendar 控件当前的配色方案保存到 XML 文件。fileName
是将写入数据的 XML 文件的路径。返回保存是否成功。bool ImportAppearance(string fileName)
- 从 XML 文件加载配色方案。fileName
是包含配色方案的 XML 文件的位置。返回加载是否成功。EnsureVisibility(int index)
- 确保给定项可见。如果不可见则滚动到该项。index
是需要显示的项的索引。State GetButtonState(BarItem barItem)
- 获取按钮的当前状态。BarItem
是要确定状态的项。按钮的State
。bool SelectItem(BarItem item)
- 将 Calendar 控件的外观重置为默认值。要选择的Item
。返回项是否被选中。
ThemeProperty
属性
UseTheme
- 获取或设置是否使用预定义主题或自定义颜色。ColorScheme
- 获取或设置要应用的ColorScheme
。请注意:当UseTheme
设置为false
时,此项不适用。
事件
ThemeChanged
- 当UseTheme
或ColorScheme
改变时触发。
方法
bool DefaultChanged()
- 返回ThemeProperty
属性是否已改变。void Reset()
- 将当前对象重置为每个属性的默认值。
外观
属性
Bar
- 获取ButtonBar
的外观。IsEmpty
- 指示外观是否为空。Item
- 获取BarItem
的外观。
事件
AppearanceChanged
- 当与绘图相关的属性被修改时发生。
方法
Assign(Appearance appearance)
- 将appearance
的属性赋值给当前对象。bool DefaultChanged()
- 返回属性值是否已改变。Reset()
- 将当前外观重置为默认外观。
AppearanceBar
属性
AppearanceBorder
- 获取ButtonBar
的边框外观。BackStyle
- 获取ButtonBar
的背景样式。CornerRadius
- 获取ButtonBar
的圆角半径。DisabledMask
- 获取或设置ButtonBar
的禁用遮罩颜色。FocusedBorder
- 获取或设置ButtonBar
的焦点边框颜色。IsEmpty
- 指示当前对象是否为空。NormalBorder
- 获取或设置ButtonBar
的正常边框颜色。
事件
AppearanceChanged
- 当与绘图相关的属性被修改时发生。
方法
Assign(AppearanceBar app)
- 将提供的AppearanceBar
的值赋值给当前object
。app AppearanceBar
是要赋值的对象。bool DefaultChanged()
- 返回ThemeProperty
属性是否已改变。Reset()
- 将当前外观重置为默认外观。
AppearanceItem
属性
AppearenceText
- 获取项的AppearenceText
。BackStyle
- 获取正常状态下项的背景样式。ClickStyle
- 获取按下状态下项的背景样式。DisabledBorder
- 获取或设置禁用状态下项的边框颜色。DisabledForeGround
- 获取或设置禁用状态下项的文本颜色。DisabledStyle
- 获取禁用状态下项的背景样式。Gradient
- 获取或设置项BackColor
的渐变。这将更新所有状态的Gradient
。HoverBorder
- 获取或设置悬停状态下项的边框颜色。HoverForeGround
- 获取或设置悬停状态下项的文本颜色。HoverStyle
- 获取悬停状态下项的背景样式。IsEmpty
- 指示当前对象是否为空。NormalBorder
- 获取或设置正常状态下项的边框颜色。NormalForeGround
- 获取或设置正常状态下项的文本颜色。SelectedBorder
- 获取或设置选中状态下项的边框颜色。SelectedForeGround
- 获取或设置选中状态下项的文本颜色。SelectedHoverStyle
- 获取SelectedHover
状态下项的背景样式。SelectedStyle
- 获取选中状态下项的背景样式。
事件
AppearanceChanged
- 当与绘图相关的属性被修改时发生。
方法
Assign(AppearanceItem app)
- 将app
的属性赋值给当前对象。bool DefaultChanged()
- 返回ThemeProperty
属性是否已改变。Reset()
- 将当前外观重置为默认外观。
已知问题
- 一些事件处理程序不会由设计器以正确的签名创建。它们需要手动修复。
历史
- 2009 年 12 月 2 日:控件的初稿