winforms中的多色对角线渐变

时间:2011-12-06 15:54:17

标签: c# winforms gradient

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

2 个答案:

答案 0 :(得分: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);
}

这是结果

enter image description here

希望这会有所帮助

答案 1 :(得分:0)

是的,您可以使用LinearGradientBrush在使用GDI +的winforms中执行此操作。这是代码示例:http://www.codeproject.com/KB/GDI-plus/gdiplusbrushes.aspx