Mega Code Archive

 
Categories / C# / 2D Graphics
 

Rectangle Linear-Gradient Brush

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);      } }