1.建议设置窗体为双缓冲绘图,可有效避免界面刷时引起的闪烁
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
2、代码实现
private Color Color1 = Color.Gray; //起始颜色
private Color Color2 = Color.White ; //目标颜色
private float changeAngle = 0f; //渐变角度
3.窗体绘制函数
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Rectangle grounRect = new Rectangle(0, 0, this.Width, this.Height);
System.Drawing.Drawing2D.LinearGradientBrush backGround = new System.Drawing.Drawing2D.LinearGradientBrush(grounRect, Color1, Color2, changeAngle);
g.FillRectangle(backGround, grounRect);
backGround.Dispose();
}