zoukankan      html  css  js  c++  java
  • Google Chrome样式进度指示器(进度条)

    © 野比 2012

    最近不用Opera,换成用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分量,重绘一个圆。

    如此反复数次,即呈现出闪烁效果。

    复制代码
    1 if (!timer.Enabled || blink == BlinkCount)
    2     drawProgress(canvasGraphic, value);
    3 else
    4 {
    5     ((SolidBrush)pieBrush).Color = Color.FromArgb(count, ForeColor.R, ForeColor.G, ForeColor.B);
    6     canvasGraphic.FillEllipse(pieBrush, rect);
    7     ((SolidBrush)pieBrush).Color = ForeColor;
    8 }
    复制代码

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

    (完)

    © 野比 2012

     

     
     
    标签: 图标C#控件GDI+
  • 相关阅读:
    从Ecma规范深入理解js中的this的指向
    js中继承的几种用法总结(apply,call,prototype)
    缓存 Array.length 是老生常谈的小优化
    spark app
    source code spark
    spark dev by IDEA
    编译spark-0.9.1
    图解GIT,ZT
    Spark分布式安装
    倒排索引(Inverted Index)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2609378.html
Copyright © 2011-2022 走看看