65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 .NET 的 ButtonBar 控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (36投票s)

2009年12月3日

CPOL

5分钟阅读

viewsIcon

67885

downloadIcon

5585

带主题的ButtonBar控件, 支持自定义绘制和完整的设计器支持

引言

Buttonbar 控件提供

  • 键盘支持
  • 完整的设计器支持
  • 自定义绘图支持

特点

ButtonBar 控件具有以下特性

  • 6 种预定义主题
  • 支持 Alpha 混合图像
  • 完整的键盘支持
  • 完整的设计时支持
  • 支持保存/加载布局颜色
  • 支持禁用背景色
  • 支持热键

Using the Code

此控件是垂直排列的按钮数组。

使用设计器微调外观。

ButtonBarDesigner.PNG

ButtonBarAppearanceEditor.PNG

键盘

  • 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 - 当 ItemsBarItem 改变时发生。
  • ItemsChanging - 当 ItemsBarItem 正在改变时发生。
  • ItemsClearing - 当 Items 正在清除时发生。
  • ItemsInserted - 当 ItemsBarItem 被插入集合时发生。
  • ItemsInserting - 当 BarItem 正在插入 Items 时发生。
  • ItemsRemoved - 当 ItemsBarItem 从集合中移除时发生。
  • ItemsRemoving - 当 BarItem 正在从 Items 中移除时发生。
  • SelectionChanged - 当按钮选择改变时发生。
  • SelectionChanging - 当按钮选择即将改变时发生。

方法

  • HitTestInfo HitTest(Point pt) - 对指定的点执行 HitTestpt 是点击的 Point。返回包含点击相关信息的 HitTestInfo 对象,例如位置、按钮索引等。
  • HitTestInfo HitTest(int x, int y) - 对指定的点执行 HitTestxy 是点击的 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 - 当 UseThemeColorScheme 改变时触发。

方法

  • 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 的值赋值给当前 objectapp 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 日:控件的初稿
© . All rights reserved.