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






4.63/5 (43投票s)
一个支持 MAC 风格和许多其他功能的高级 TrackBar(滑块)控件。

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

引言
在‘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 上的所有滑块形状(通过加载和绘制滑块的图片)。但是,为了优化内存使用,目前我没有添加它们。
我希望其他人发现这个控件有用。请随时报告错误、问题或请求。