Работа с 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.