Работа с LinearGradientBrush

Работа с LinearGradientBrush

Последним из рассматриваемых в этом разделе типов будет тип LinearGradientBrush, который можно использовать тогда, когда нужно смешать два цвета в градиентной закраске. Работать с этим типом так же просто, как и с остальными типами кисти. Важным моментом здесь Является то, что при создании LinearGradientBrush нужно указать пару типов Color и значение для направления смешивания из перечня LinearGradientMode.

public enum LinearGradientMode {

 Horizontal, Vertical,

 ForwardDiagonal, BaсkwardDiagonal

}

Чтобы проверить эти значения, с помощью LinearGradientBrush отобразим серию прямоугольников.

private void MainForm_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 Rectangle r = new Rectangle(10, 10, 100, 100);

 // Градиентная кисть.

 LinearGradientBrush theBrush = null;

 int yOffSet = 10;

 // Получение членов перечня LinearGradientMode.

 Array obj = Enum.GetValues(typeof(LinearGradientMode));

 // Отображение прямоугольников для членов LinearGradientMode.

 for(int x = 0; x ‹ obj.Length; x++) {

  // Конфигурация кисти.

  LinearGradientMode temp = (LinearGradientMode)obj.SetValue(x);

  theBrush = new LinearGradientBrush(r, Color.GreenYellow, Color.Blue, temp);

  // Вывод имени из перечня LinearGradientMode.

  g.DrawString(temp.ToString(), new Font("Times New Roman", 10), new SolidBrush(Color.Black), 0, yOffSet);

  // Закраска прямоугольника подходящей кистью.

  g.FillRectangle(theBrush, 150, yOffSet, 200, 50);

  yOffSet += 80;

 }

}

На рис. 20.17 показан результат.

Рис. 20.17. Градиентная кисть за работой

Исходный код. Проект GradientBrushes размещен в подкаталоге, соответствующем главе 20.