仿苹果AppStore 环形下载进度条
以前项目自己写的 ,一个模仿苹果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 环形下载进度条相关推荐
- 仿苹果商店圆形下载进度条
IOS原生提供的进度条为长条形状,但是有时候应用需要像苹果商店那种圆形进度条.本专题提供了仿苹果商店的圆形进度条,分为objective-C和swift两个版本,用户只需要倒入UAProcess类,进 ...
- progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条
progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条 附上我在公司做下载播放项目 主要使用方法 progressBlock = (ProgressBlock) f ...
- 仿新浪微博图片加载进度条——JLPieProgressView
2019独角兽企业重金招聘Python工程师标准>>> JLPieProgressView 仿新浪微博图片加载进度条 实现代码如下: #import "JLPieProgr ...
- Android之旅:仿魅族应用商店下载进度控件
前言 实现过程 需求分析 具体动手 定义需要的参数 重写onDraw() 属性动画 设置文字 自定义属性 暴露更新进度的方法供外界调用: 使用方法: 问题 前言 因为本人是个魅族控,魅族的UI以及页面 ...
- 仿魅族应用商店下载进度控件
前言 因为本人是个魅族控,魅族的UI以及页面风格真的是深入我心,特别是一些小动效更是让我爱不释手,所以也想仿着来做一点,好吧,啰嗦毕了,看下实现的UI效果. 这个是魅族应用商店下载进度条的进度读取,我 ...
- python实现http下载文件-Python HTTP下载文件并显示下载进度条功能的实现
下面的Python脚本中利用request下载文件并写入到文件系统,利用progressbar模块显示下载进度条. 其中利用request模块下载文件可以直接下载,不需要使用open方法,例如: im ...
- Python 技术篇-在cmd命令提示行里模拟动态下载进度条实例演示,cmd清除日志、打印动态内容方法
模拟进度条的核心就是用 os.system('cls') 不断的来清除屏幕之前的数据,再打印出新的,给人一种动态的感觉. # -*- coding: UTF8 -*- import os import ...
- python迅雷下载进度_python 之实现断点下载与下载进度条
一.效果图 二.进度条代码 __author__ = 'Yang' import os import time from threading import Thread '''下载进度条''' cla ...
- 仿ios相机apk_仿苹果相机软件下载
仿苹果相机软件下载是一款拥有丰富滤镜的手机拍照app,超多表情贴图,让你的照片更具特色,极快的拍照相机,令人惊喜的美妙滤镜,快来下载试试~ 仿苹果相机软件下载之说明 1.实时滤镜 – 拍照或拍视频前实 ...
最新文章
- 安装Eclipse插件
- Web框架之Django_10 重要组件(Auth模块)
- OpenCV背景减法Background Subtraction Methods
- 极简实用的Asp.NetCore模块化框架决定免费开源了
- JavaScript高级之继承
- php与python缺点_php和python的比较
- openstack创建外网_OpenStack的女性谈论外展,教育和指导
- 塞尔达传说gba_《塞尔达传说缩小帽》是系列一年级生?,回忆众多玩友的启蒙之作...
- Win10使用Xrdp脚本远程桌面连接Ubuntu主机
- Apache下的FileUtils.listFiles方法简单使用技巧
- VisualStudio 2013开发Office插件
- 摄氏度和开氏度的换算_开尔文与摄氏度的换算关系
- 直播app服务器部署,直播视频服务器的选择!
- 2020年十大数字客户体验(CX)软件平台
- 有哪些 Java 源代码看了后让你收获很多,代码思维和能力有较大的提升?
- 全概率公式和贝叶斯公式
- 拼多多增长黑客模式实战
- 语雀 添加块级模式公式
- C++入门:构造函数,析构函数,拷贝构造函数,运算符重载详解
- vscode远程连接服务器失败的问题
热门文章
- java limit_简单的限流 java实现 RateLimiter
- $(window).load(function(){})和.onload区别
- Predicting Domain Generation Algorithms with Long Short-Term Memory Networks
- No bean named ‘XXX‘ available 的原因之一
- web前端知识总结一(HTMl+CSS)
- JS 中的 assign 方法究竟是 “深克隆” 还是 “浅克隆”?
- unity 调用大华设备视频
- 数据结构:带头双向循环链表——增加、删除、查找、修改,详细解析
- 【干货分享】吴恩达老师的视频教程
- Pipenv 虚拟环境(windows10)