Четырехцветный градиентный прямоугольник в форме Windows C # Использование? - PullRequest
0 голосов
/ 22 сентября 2018

Я хочу иметь возможность сделать четырехцветный градиент по 1 цвету из каждого угла.Я хочу быть в состоянии сделать это в рисовании прямоугольника с использованием графики в форме Windows C #.Может кто-нибудь помочь с кодом для его создания, если это возможно?Благодарю.

1 Ответ

0 голосов
/ 22 сентября 2018

Вы можете использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...