自定义控件绘制画圆

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.ComponentModel;

namespace WindowsFormsApplication1
{
    public class myButton:Panel
    {
        Control _preControl;
        Color _myBackColor;

        public Color MyBackColor
        {
            get { return _myBackColor; }
            set { _myBackColor = value;
            this.Invalidate();
            }
        }
        public Control PreControl
        {
            get { return _preControl; }
            set { _preControl = value;
            this.Invalidate();
            }
        }
        public myButton()
        {
            this.SetStyle(ControlStyles.AllPaintingInWmPaint |
                ControlStyles.OptimizedDoubleBuffer |
                ControlStyles.UserPaint|
            ControlStyles.SupportsTransparentBackColor|
            ControlStyles.ResizeRedraw, true);
            this.UpdateStyles();
            _myBackColor = Color.LightBlue;
        }

        protected override void OnPaint(PaintEventArgs pevent)
        {
            Graphics gp = pevent.Graphics;
            gp.SmoothingMode = SmoothingMode.AntiAlias;
            Rectangle rect=new Rectangle(0, 0, this.Width - 1, this.Height - 1);
            gp.DrawEllipse(new Pen(_myBackColor, 1),rect );
            LinearGradientBrush gb = new LinearGradientBrush(rect, Color.White, Color.Black, 0f);   //线性渐变
            gp.FillEllipse(gb, rect);     //线性渐变
            //gp.FillEllipse(new SolidBrush(_myBackColor), rect);       //单色画笔
            
        }

        #region 隐藏属性
        [Browsable(false)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public override Color BackColor
        {
            get
            {
                return base.BackColor;
            }
            
        }

        #endregion
    }
}

 

posted @ 2018-09-12 19:35  haiping_he  阅读(179)  评论(0编辑  收藏  举报