以前项目自己写的 ,一个模仿苹果AppStore 下载进度条的winfrom用户控件,GDI绘制。效果如图

 1 using System.Drawing;
 2 using System.Windows.Forms;
 3 using System.ComponentModel;
 4 namespace test
 5 {
 6     public class CircleProgressBar : Control
 7     {
 8         float _progress = 0F;
 9         float _Wpen = 1;
10         float _Npen = 5;
11         float _Fwidth = 10;
12         [Description("进度条颜色")]
13         public Color CircleColor
14         {
15             get;
16             set;
17         }
18         [Description("外圈粗度")]
19         public float WpenThin
20         {
21             get { return _Wpen; }
22             set { _Wpen = value; }
23         }
24         [Description("内圈粗度")]
25         public float NpenThin
26         {
27             get { return _Npen; }
28             set { _Npen = value; }
29         }
30         [Description("内心方形边长")]
31         public float Fwitdh
32         {
33             get { return _Fwidth; }
34             set { _Fwidth = value; }
35         }
36         public void PaintProgress(PaintEventArgs e)
37         {
38             float x = this.Width / 2;
39             float y = this.Height / 2;//圆心坐标
40             float Wr = x - WpenThin / 2;//外圈半径
41             float Nr = x - NpenThin / 2;//内圈半径
42             int Wx = (int)(x - Wr);
43             int Wy = (int)(y - Wr);//外圈起始坐标
44             int Nx = (int)(x - Nr);
45             int Ny = (int)(y - Nr);//外圈起始坐标
46             int Fy = (int)(y - Fwitdh/2);
47             int Fx = (int)(x - Fwitdh/2);// 内心方形坐标
48             Graphics dc = this.CreateGraphics();
49             dc.Clear(this.BackColor);
50             Pen Wpen = new Pen(CircleColor, WpenThin);
51             Pen Npen = new Pen(CircleColor, NpenThin);
52             Brush Fbrush = new SolidBrush(CircleColor);
53             dc.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
54             float startAngle = -90;
55             float sweepAngle = Progress / 100 * 360;//起始角度
56             Rectangle Wrec = new Rectangle(Wx, Wy, 2 * (int)Wr, 2 * (int)Wr);
57             Rectangle Nrec = new Rectangle(Nx, Ny, 2 * (int)Nr, 2 * (int)Nr);
58             Rectangle Frec = new Rectangle(Fx, Fy, (int)Fwitdh, (int)Fwitdh);
59             dc.DrawEllipse(Wpen, Wrec);
60             dc.FillRectangle(Fbrush, Frec);
61             dc.DrawArc(Npen, Nrec, startAngle, sweepAngle);
62         }
63         public float Progress
64         {
65             get { return _progress; }
66             set
67             {
68                 if (_progress != value && value >= 0 && value <= 100)
69                 {
70                     _progress = value;
71                     OnProgressChanged();
72                 }
73             }
74         }
75         protected virtual void OnProgressChanged()
76         {
77             this.Invalidate();
78         }
79         protected override void OnPaint(PaintEventArgs e)
80         {
81             PaintProgress(e);
82             base.OnPaint(e);
83         }
84     }
85 }

转载于:https://www.cnblogs.com/ligreat/p/circleprogress.html

仿苹果AppStore 环形下载进度条相关推荐

  1. 仿苹果商店圆形下载进度条

    IOS原生提供的进度条为长条形状,但是有时候应用需要像苹果商店那种圆形进度条.本专题提供了仿苹果商店的圆形进度条,分为objective-C和swift两个版本,用户只需要倒入UAProcess类,进 ...

  2. progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条

    progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条 附上我在公司做下载播放项目 主要使用方法 progressBlock = (ProgressBlock) f ...

  3. 仿新浪微博图片加载进度条——JLPieProgressView

    2019独角兽企业重金招聘Python工程师标准>>> JLPieProgressView 仿新浪微博图片加载进度条 实现代码如下: #import "JLPieProgr ...

  4. Android之旅:仿魅族应用商店下载进度控件

    前言 实现过程 需求分析 具体动手 定义需要的参数 重写onDraw() 属性动画 设置文字 自定义属性 暴露更新进度的方法供外界调用: 使用方法: 问题 前言 因为本人是个魅族控,魅族的UI以及页面 ...

  5. 仿魅族应用商店下载进度控件

    前言 因为本人是个魅族控,魅族的UI以及页面风格真的是深入我心,特别是一些小动效更是让我爱不释手,所以也想仿着来做一点,好吧,啰嗦毕了,看下实现的UI效果. 这个是魅族应用商店下载进度条的进度读取,我 ...

  6. python实现http下载文件-Python HTTP下载文件并显示下载进度条功能的实现

    下面的Python脚本中利用request下载文件并写入到文件系统,利用progressbar模块显示下载进度条. 其中利用request模块下载文件可以直接下载,不需要使用open方法,例如: im ...

  7. Python 技术篇-在cmd命令提示行里模拟动态下载进度条实例演示,cmd清除日志、打印动态内容方法

    模拟进度条的核心就是用 os.system('cls') 不断的来清除屏幕之前的数据,再打印出新的,给人一种动态的感觉. # -*- coding: UTF8 -*- import os import ...

  8. python迅雷下载进度_python 之实现断点下载与下载进度条

    一.效果图 二.进度条代码 __author__ = 'Yang' import os import time from threading import Thread '''下载进度条''' cla ...

  9. 仿ios相机apk_仿苹果相机软件下载

    仿苹果相机软件下载是一款拥有丰富滤镜的手机拍照app,超多表情贴图,让你的照片更具特色,极快的拍照相机,令人惊喜的美妙滤镜,快来下载试试~ 仿苹果相机软件下载之说明 1.实时滤镜 – 拍照或拍视频前实 ...

最新文章

  1. 安装Eclipse插件
  2. Web框架之Django_10 重要组件(Auth模块)
  3. OpenCV背景减法Background Subtraction Methods
  4. 极简实用的Asp.NetCore模块化框架决定免费开源了
  5. JavaScript高级之继承
  6. php与python缺点_php和python的比较
  7. openstack创建外网_OpenStack的女性谈论外展,教育和指导
  8. 塞尔达传说gba_《塞尔达传说缩小帽》是系列一年级生?,回忆众多玩友的启蒙之作...
  9. Win10使用Xrdp脚本远程桌面连接Ubuntu主机
  10. Apache下的FileUtils.listFiles方法简单使用技巧
  11. VisualStudio 2013开发Office插件
  12. 摄氏度和开氏度的换算_开尔文与摄氏度的换算关系
  13. 直播app服务器部署,直播视频服务器的选择!
  14. 2020年十大数字客户体验(CX)软件平台
  15. 有哪些 Java 源代码看了后让你收获很多,代码思维和能力有较大的提升?
  16. 全概率公式和贝叶斯公式
  17. 拼多多增长黑客模式实战
  18. 语雀 添加块级模式公式
  19. C++入门:构造函数,析构函数,拷贝构造函数,运算符重载详解
  20. vscode远程连接服务器失败的问题

热门文章

  1. java limit_简单的限流 java实现 RateLimiter
  2. $(window).load(function(){})和.onload区别
  3. Predicting Domain Generation Algorithms with Long Short-Term Memory Networks
  4. No bean named ‘XXX‘ available 的原因之一
  5. web前端知识总结一(HTMl+CSS)
  6. JS 中的 assign 方法究竟是 “深克隆” 还是 “浅克隆”?
  7. unity 调用大华设备视频
  8. 数据结构:带头双向循环链表——增加、删除、查找、修改,详细解析
  9. 【干货分享】吴恩达老师的视频教程
  10. Pipenv 虚拟环境(windows10)