项目场景:
c#绘制渐变色的button
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using static System.Windows.Forms.AxHost;namespace WindowsFormsApp2
{public class GradientCircle : UserControl{public GradientCircle(){this.Size = new Size(circleSize, circleSize);this.Paint += new PaintEventHandler(GradientCircleForm_Paint);//this.Click += GradientCircleForm_Click;}private double _scale;int circleSize = 300, InitialSize = 300;[Category("自定义")]public double OverrideScale{set{circleSize = (int)(_scale * InitialSize);this.Size = new Size(circleSize, circleSize);_scale = value; this.Invalidate();}}private Color _clrGradientCircle=Color.Green;[Category("自定义")]public Color ColorGradientCircle{get { return _clrGradientCircle; }set {_clrGradientCircle = value; Invalidate();}}private void GradientCircleForm_Paint(object sender, PaintEventArgs e){Graphics g = e.Graphics;g.SmoothingMode = SmoothingMode.AntiAlias;Rectangle circleRect = new Rectangle((this.ClientSize.Width - circleSize) / 2,(this.ClientSize.Height - circleSize) / 2,circleSize,circleSize);using (GraphicsPath path = new GraphicsPath()){path.AddEllipse(circleRect);using (PathGradientBrush brush = new PathGradientBrush(path)){// 设置中心颜色brush.CenterColor = Color.White;// 边缘颜色可以是多种颜色Color[] surroundColors = new Color[] { _clrGradientCircle };brush.SurroundColors = surroundColors;g.FillPath(brush, path);}}}}
}