首页 > 代码库 > 环形进度条

环形进度条

接触Winform时间也不长,控件自绘也是刚开始学,现在的打算是一点一点积累,争取能够有点小成果。今天分享的是一个自定义的进度条控件,实现很简单,也没有做什么美化,所以有兴趣的就粗略看看。

using System;using System.Collections.Generic;using System.ComponentModel;using System.Diagnostics;using System.Linq;using System.Text;using System.Windows.Forms;using System.Drawing;using System.Drawing.Drawing2D;namespace AnnularProgressBarDemo{    public partial class AnnularProgressBar : Control    {        /// <summary>        /// 前景色,即进度条颜色        /// </summary>        private SolidBrush _ForeBrush = new SolidBrush(Color.Red);        public SolidBrush ForeBrush        {            get { return _ForeBrush; }            set            {                _ForeBrush = value;                Invalidate();            }        }        /// <summary>        /// 遮盖颜色,即环内部的颜色        /// </summary>        private SolidBrush _MaskBrush = new SolidBrush(SystemColors.Control);        public SolidBrush MaskBrush        {            get { return _MaskBrush; }            set            {                _MaskBrush = value;                Invalidate();            }        }        /// <summary>        /// 起始角度        /// </summary>        private float _StartAngle = 0.0f;        public float StartAngle        {            get { return _StartAngle; }            set            {                _StartAngle = value;                Invalidate();            }        }        /// <summary>        /// 跨度        /// </summary>        private float _SweepAngle = 0.0f;        public float SweepAngle        {            get { return _SweepAngle; }            set            {                _SweepAngle = value;                Invalidate();            }        }        /// <summary>        /// 进度        /// </summary>        private float _Value = http://www.mamicode.com/0.0f;>

  方法很简单,就是靠GDI+画一个Pie,然后再画一个圆遮住中间的部分,其他的就是靠调节相关的值来实现了。用的话也很简单,初始化MinValue、MaxValue和InitValue值后就可以通过改变Value的值来完成了。

环形进度条