Круговые градиенты в приложении .NET WinForms - PullRequest
3 голосов
/ 15 ноября 2010

В моем приложении WinForms (C #) у меня есть круг (определенный как Rectangle), который я сейчас заливаю сплошным цветом.Я хотел бы заполнить это с помощью кругового (не линейного) градиента (таким образом, один цвет в центре постепенно исчезает до другого цвета по краям).

Я экспериментировал с PathGradientBrush, но мне не повезло (я все еще вижу сплошной цвет).Если у кого-нибудь есть пример кода, который делает это, это было бы потрясающе!

1 Ответ

3 голосов
/ 15 ноября 2010

Я нашел решение здесь .

private void label1_Paint(object sender, PaintEventArgs e)
{
    GraphicsPath gp = new GraphicsPath();
    gp.AddEllipse(label1.ClientRectangle);

    PathGradientBrush pgb = new PathGradientBrush(gp);

    pgb.CenterPoint = new PointF(label1.ClientRectangle.Width / 2, 
                                 label1.ClientRectangle.Height / 2);
    pgb.CenterColor = Color.White;
    pgb.SurroundingColors = new Color[] { Color.Red };

    e.Graphics.FillPath(pgb, gp);

    pgb.Dispose();
    gp.Dispose();
}
...