using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class RectangleLinearGradientBrush: Form
{
MenuItem miChecked;
public static void Main()
{
Application.Run(new RectangleLinearGradientBrush());
}
public RectangleLinearGradientBrush()
{
ResizeRedraw = true;
Menu = new MainMenu();
Menu.MenuItems.Add("&Gradient-Mode");
foreach (LinearGradientMode gm in
Enum.GetValues(typeof(LinearGradientMode)))
{
MenuItem mi = new MenuItem();
mi.Text = gm.ToString();
mi.Click += new EventHandler(MenuGradientModeOnClick);
Menu.MenuItems[0].MenuItems.Add(mi);
}
miChecked = Menu.MenuItems[0].MenuItems[0];
miChecked.Checked = true;
}
void MenuGradientModeOnClick(object obj, EventArgs ea)
{
miChecked.Checked = false;
miChecked = (MenuItem) obj;
miChecked.Checked = true;
Invalidate();
}
protected override void OnPaint(PaintEventArgs pea)
{
DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
{
Rectangle rectBrush =
new Rectangle(cx / 4, cy / 4, cx / 2, cy / 2);
LinearGradientBrush lgbrush =
new LinearGradientBrush(
rectBrush, Color.White, Color.Black,
(LinearGradientMode) miChecked.Index);
grfx.FillRectangle(lgbrush, 0, 0, cx, cy);
grfx.DrawRectangle(Pens.Black, rectBrush);
}
}