XP 式彩色进度条






4.27/5 (17投票s)
2005年3月30日
2分钟阅读

81106

1820
一个 WinForms 进度条控件。
引言
这是一个简单的进度条控件,模仿了 XP 的视觉风格。 该控件继承自 Windows.Forms.Control
,添加这个进度条的原因是,没有一个 XP 风格的进度条可以改变颜色。 我需要一个红色的进度条来指示错误,但是普通的 XP 进度条不允许改变颜色。 另外,我需要漂亮的 XP 风格,因为我的程序正在使用 XP 视觉风格。 这些条的绘制方式和 XP 进度条一样。 整个条都被绘制出来,而不是只绘制部分条,这取决于进度条的值。
背景
对于进度条,我使用了由 Alan Zhao 开发的非常好的进度条控件。 基本上,主要功能是由他提供的,我改进了控件的绘制,使它看起来更像 XP。
控件属性
BarColor
ColorProgressBar
的主要颜色。BorderColor
ColorProgressBar
的边框颜色。FillStyle
进度条样式,"
Solid
" 或 "Dashed
"。最大
ColorProgressBar
的最大值。最低
ColorProgressBar
的最小值或初始值。值
ColorProgressBar
的当前值。步骤
当您调用
PerformStep()
和PerformStepBack()
方法时,每次递增或递减的值。
控制方法
PerformStep()
调用
PerformStep()
方法来增加Step
属性中设置的值。PerformStepBack()
调用
PerformStepBack()
方法来减小Step
属性中设置的值。Increment(int value)
调用
Increment()
方法来增加您指定的整数值。Decrement(int value)
调用
Decrement()
方法来减小您指定的整数值。
绘制代码
// The region of the progress bar!
int leftbar = 1;
int topbar = 1;
int X = this.Width-1;
int Y = this.Height-1;
Point[] points = { new Point(leftbar + 2, topbar),
new Point(X-2, topbar),
new Point(X-1, topbar + 1),
new Point(X, topbar + 2),
new Point(X, Y-3),
new Point(X-1, Y-2),
new Point(X-2, Y-1),
new Point(leftbar + 2, Y),
new Point(leftbar + 1, Y-2),
new Point(leftbar, Y-3),
new Point(leftbar, topbar + 2),
new Point(leftbar + 1, topbar + 1),
};
GraphicsPath path = new GraphicsPath();
path.AddLines(points);
Region reg = new Region(path);
e.Graphics.FillRegion(Brushes.White, reg);
这是进度条区域的定义。
关注点
如果您想学习如何模拟和绘制像 Windows XP 中那样的控件,这个项目会很有趣。
历史
目前还没有历史记录。
谢谢
再次感谢 Alan Zhao 的出色工作。 您可以在这里查看他的作品。
反馈
请为这篇文章投票。
如果您有任何疑问,请给我发邮件或留下您的消息
- 错误报告
- 代码改进
- 任何评论或建议。