winforms中的多色对角线渐变

Cha*_*ams 5 c# gradient winforms

我试图在winforms中填充一个多色对角线渐变的矩形,如下例所示:对角线渐变 我知道这是一个WPF示例,但是有可能在winforms中得到类似的结果吗?

pun*_*r76 10

这是一个小例子

void MainFormPaint(object sender, PaintEventArgs e)
{
  LinearGradientBrush br = new LinearGradientBrush(this.ClientRectangle, Color.Black, Color.Black, 0 , false);
  ColorBlend cb = new ColorBlend();
  cb.Positions = new[] {0, 1/6f, 2/6f, 3/6f, 4/6f, 5/6f, 1};
  cb.Colors = new[] {Color.Red, Color.Orange, Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet};
  br.InterpolationColors= cb;
  // rotate
  br.RotateTransform(45);
  // paint
  e.Graphics.FillRectangle(br, this.ClientRectangle);
}
Run Code Online (Sandbox Code Playgroud)

这是结果

在此输入图像描述

希望这可以帮助