GDI + .NET: LinearGradientBrush шириной более 202 пикселей вызывает обтекание цвета

Если я закрашу прямоугольник шириной более 202 пикселей LinearGradientBrush , я получу цветную полосу слева:

enter image description here

Учитывая код для прямоугольника шириной 202 пикселей :

private void MainForm_Paint(object sender, PaintEventArgs e)
{
   Rectangle r = new Rectangle(50, 50, 202, 50);

   Color color1 = Color.FromArgb(unchecked((int)0xFF00024d));
   Color color2 = Color.FromArgb(unchecked((int)0xFFd6a20f));

   Brush b = new LinearGradientBrush(r, color1, color2, LinearGradientMode.Horizontal);
   e.Graphics.FillRectangle(b, r);
}

я получаю прямоугольник, который раскрашивается правильно:

enter image description here

Но если я изменю прямоугольник на 203 пикселей в ширину:

Rectangle r = new Rectangle(50, 50, 203, 50);

прямоугольник имеет цветную кайму слева:

enter image description here


Это также происходит в вертикальном направлении с LinearGradientMode.Vertical :

202px :

enter image description here

203px ]:

enter image description here

6
задан Ian Boyd 7 November 2011 в 14:09
поделиться