Windows Form C#中的四个颜色渐变矩形使用?

时间:2018-09-22 18:57:09

标签: c# windows forms gradient

我希望能够从每个角创建4种颜色的渐变和1种颜色。我希望能够使用Windows Form C#中的图形在矩形图形中执行此操作。任何人都可以帮助编写代码(如果可能)吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用PathGradientBrush来执行此操作。为了获得良好的平滑混合效果,我将中心颜色设置为所有涉及的颜色的平均值。

private void Form1_Paint(object sender, PaintEventArgs e)
{
    var colorArray = new Color[] { Color.Red, Color.Blue, Color.Green, Color.Yellow };        
    GraphicsPath graphicsPath = new GraphicsPath();
    graphicsPath.AddRectangle(ClientRectangle);

    using (Graphics graphics = this.CreateGraphics())
    using (PathGradientBrush pathGradientBrush = new PathGradientBrush(graphicsPath)
    {
        CenterColor = Color.FromArgb((int)colorArray.Average(a => a.R), (int)colorArray.Average(a => a.G), (int)colorArray.Average(a => a.B)),
        SurroundColors = colorArray
    })
    {
        graphics.FillPath(pathGradientBrush, graphicsPath);
    }
}

结果:

enter image description here