「玩一玩」Google Chrome样式进度指示器控件(圆形进度条)

Conmajia 2012-07-25 07:23:35
加精
吐槽:这两天CSDN改版的消息似乎很火。。什么更换技术全部重写,然后N多人下面跟帖「好啊」「振奋啊」「RoR技术如何」「重写的时候某某功能如何如何改」。。。
我很无语。。我只想问CSDN一句话:
买个商用 BBS 能要你命啊?反正要换服务器,换个PHP的怎么了?Discuz!、SMF、VBulletin这些经过超长时间、超大流量、超多用户验证过的优秀论坛,性能又好用户体验也好,买一个来用怎么了?非得招一帮人来从头开发。。

我的大脑似乎只支持短时间思考。。稍微长点的东西就没兴趣了。。

最近换成用Google Chrome,觉得它的进度条挺有意思的,就是这个:

于是简单复刻了一个。。



功能
显示给定进度百分比(0-100)。如果进度值达到100%,则将闪烁指定次数。

属性
BlinkCount,结束后闪烁几次。0为不闪烁,默认2
BlinkSpeed,闪烁速度,0-255,默认10
Image,图标,null则不显示
SpokeColor,辐条颜色
SpokeCount,辐条数量(穿过圆心算1根)
Value,进度百分比

事件
没有加入进度变化或完成事件,如果需要请自行添加。
结构
原理比较简单,参照此图:





层次如下:
用Parent.BackColor填充背景
画进度,用DrawPie()做
画辐条,对穿圆心,drawSpokes()
画图标,居中,drawIcon()

动画
利用一个System.Windows.Forms.Timer控件完成,在Timer中只修改淡出进度,之后Refresh(),在Paint事件中改变填充色的Alpha分量,重绘一个圆。
如此反复数次,即呈现出闪烁效果。

if (!timer.Enabled || blink == BlinkCount)
drawProgress(canvasGraphic, value);
else
{
((SolidBrush)pieBrush).Color = Color.FromArgb(count, ForeColor.R, ForeColor.G, ForeColor.B);
canvasGraphic.FillEllipse(pieBrush, rect);
((SolidBrush)pieBrush).Color = ForeColor;
}


其余部分请参阅代码:点击下载

欢迎改进补充。。总之。。我是懒了。。
...全文
5394 156 打赏 收藏 转发到动态 举报
写回复
用AI写文章
156 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxxcloud 2012-08-28
  • 打赏
  • 举报
回复
野比的帖子,必须支持!
xx 2012-08-13
  • 打赏
  • 举报
回复

重复造轮子的事情还少嘛。。。

研究挺不错的。
xiaolongfck 2012-08-10
  • 打赏
  • 举报
回复
用WPF更简单一些
精英通讯总店 2012-08-10
  • 打赏
  • 举报
回复
立刻就会感到有点阴天
精英通讯总店 2012-08-10
  • 打赏
  • 举报
回复
加速度飞过海急口令
maoqimu 2012-08-10
  • 打赏
  • 举报
回复
呵呵 都挺好看的哈!飘过
syjjingzi110 2012-08-09
  • 打赏
  • 举报
回复
支持一下 很好看啊
syjjingzi110 2012-08-09
  • 打赏
  • 举报
回复
支持一下。。。
tixisong 2012-08-09
  • 打赏
  • 举报
回复
很好看
jiaxiang131 2012-08-09
  • 打赏
  • 举报
回复
支持,楼主牛
止境 2012-08-08
  • 打赏
  • 举报
回复
非常好,学习了。谢谢
  • 打赏
  • 举报
回复
不错,一直关注楼主的新创意
效果非常不错。支持!
yaofushan 2012-08-07
  • 打赏
  • 举报
回复
楼主的进度条很漂亮啊!
atom_warhead 2012-08-07
  • 打赏
  • 举报
回复
讲得不错,深入浅出,对于初学者是很好的资料!
晚安苏州 2012-08-06
  • 打赏
  • 举报
回复
17楼亮了
  • 打赏
  • 举报
回复
现在很多论坛都是10年多前就已经搞到一定规模了的。为什么没有其它公司敢于开发和营运一个免费程序员论坛呢?
陈厚来 2012-08-05
  • 打赏
  • 举报
回复
还是支持csdn自己开发论坛。dz, phpwind是不错,但是你买了,就上了贼船,
你的开发、整合都会遇到问题。会逐渐的走下坡路。参考chinaunix的先例,至少现在是半死不活。

软件为什么要重构呢?
软件为什么要重构呢?
软件为什么要重构呢?

你买来的,会消化不良的,有多少二次开发、并且还能不散架维护下去的把握?

shunhe316 2012-08-04
  • 打赏
  • 举报
回复
不错,支持楼主
懒虫虫 2012-08-04
  • 打赏
  • 举报
回复
有意思的GDI,学习一下!
Conmajia 2012-08-04
  • 打赏
  • 举报
回复
那么就火了。。
加载更多回复(77)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧