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

带 MAC 风格的高级滑块控件(C# & VB.NET)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.63/5 (43投票s)

2006 年 6 月 8 日

CPOL

4分钟阅读

viewsIcon

308921

downloadIcon

20562

一个支持 MAC 风格和许多其他功能的高级 TrackBar(滑块)控件。

Sample Image - TrackBar_Demo.jpg

将此控件与下面的其他 MAC 风格控件一起使用会更美观。

Sample image

引言

在‘MAC-UI Suite' 项目(一个专注于为 .NET 构建具有 MAC 风格的丰富 UI 控件库的项目)开发过程中,我们考虑开发一个支持 MAC 风格和许多其他功能的高级滑块(Slider)控件。

主要特点

  • 支持 MAC 风格
  • 垂直和水平滑块
  • 支持多种文本刻度样式:左上右下两者
  • 您可以更改文本字体、文本刻度的前景色
  • 支持多种刻度样式:左上右下两者
  • 您可以更改刻度颜色刻度间隔刻度高度
  • 您可以更改滑块颜色滑块大小
  • 您可以更改轨道线颜色轨道线高度
  • 易于在 Visual Studio .NET 中使用和集成
  • 与 VS.NET 中的标准控件 100% 兼容
  • 100% 托管代码

要探索此滑块控件的功能,只需下载并运行演示程序。

控件属性

属性 描述
AutoSize(自动调整大小) 获取或设置一个值,该值指示滑块的高度或宽度是否自动调整大小。
BorderColor 获取或设置控件的边框颜色。
BorderStyle 获取或设置滑块控件的边框类型。
IndentHeight 获取或设置缩进的高度(或 Y 轴填充)。
IndentWidth 获取或设置缩进的宽度(或 X 轴填充)。
LargeChange 获取或设置在滑块远距离移动时添加到Value属性或从中减去的值。
最大 获取或设置此MACTrackBar正在使用的范围的上限。
最低 获取或设置此MACTrackBar正在使用的范围的下限。
Orientation 获取或设置一个值,该值指示滑块的水平或垂直方向。
大小 获取或设置控件的高度和宽度。
SmallChange 获取或设置在滑块近距离移动时添加到Value属性或从中减去的值。
TextTickStyle 获取或设置滑块的文本刻度样式。有 4 种样式可供选择:左上右下两者
TickColor 获取或设置控件的刻度颜色。
TickFrequency 获取或设置一个值,该值指定控件上绘制的刻度之间的增量。
TickHeight 获取或设置刻度的高度。
TickStyle 获取或设置滑块的刻度样式。有 4 种样式可供选择:左上右下两者
TrackerColor 获取或设置滑块的颜色。
TrackerSize 获取或设置滑块的大小。滑块的宽度必须大于或等于滑块的高度。
TrackLineColor 获取或设置轨道线的颜色。
TrackLineHeight 获取或设置轨道线的高度。
获取或设置一个数值,该数值表示滑块在轨道条上的当前位置。

控制方法

方法 描述
Decrement 调用Decrement()方法以减少指定整数值所显示的数值。
增量 调用Increment()方法以增加指定整数值所显示的数值。
OnScroll 引发Scroll事件。
OnValueChanged 引发ValueChanged事件。
ResetAppearance 在设置UIStyle属性后重置外观属性。
SetRange 设置TrackBar的最小值和最大值。

控制事件

事件 描述
Scroll 当鼠标或键盘操作移动滑块时发生。
ValueChanged 当 Value 属性更改时发生。

使用控件

  • 下载源代码并解压缩。
  • 打开 VS.NET 的工具菜单,然后选择“添加/删除工具箱项”。
  • 点击“浏览”,然后导航到源代码的bin\Release目录中的MACTrackBar.dll
  • 点击“打开”然后“确定”,MACTrackBar控件现在将出现在您的工具箱中。只需将控件拖到窗体上即可使用。
  • 设置控件的属性,并编写事件处理程序,然后按 F5 运行您的程序。

代码内部

所有方向的滑块的计算可能相当复杂且有趣。

请阅读以下方法以获取更多详细信息。

  • DrawTickTextLine()
  • DrawTickLine()
  • OnMouseDownSlider()
  • OnMouseUpSlider()
  • OnMouseMoveSlider()

结论

基于这段核心代码,您可以轻松地为滑块构建其他 UI 样式(例如 XP 样式...)。您可以通过加载图片来绘制任何样式的滑块...

我们可以轻松支持 MAC 上的所有滑块形状(通过加载和绘制滑块的图片)。但是,为了优化内存使用,目前我没有添加它们。

我希望其他人发现这个控件有用。请随时报告错误、问题或请求。

© . All rights reserved.