Mega Code Archive

 
Categories / C# / 2D Graphics
 

Pen Dash Caps

using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms;     class PenDashCaps: Form {      MenuItem miChecked;          public static void Main()      {           Application.Run(new PenDashCaps());      }      public PenDashCaps()      {           ResizeRedraw = true;                Menu = new MainMenu();           Menu.MenuItems.Add("&Width");               int[] aiWidth = { 1, 2, 5, 10, 15, 20, 25 };               foreach (int iWidth in aiWidth)                Menu.MenuItems[0].MenuItems.Add(iWidth.ToString(),                                          new EventHandler(MenuWidthOnClick));               miChecked = Menu.MenuItems[0].MenuItems[0];           miChecked.Checked = true;      }      void MenuWidthOnClick(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)      {           Pen pen = new Pen(clr, Convert.ToInt32(miChecked.Text));           pen.DashStyle = DashStyle.DashDotDot;               foreach (DashCap dc in Enum.GetValues(typeof(DashCap)))           {                pen.DashCap = dc;                    grfx.DrawLine(pen, cx / 8, cy / 4, 7 * cx / 8, cy / 4);                 grfx.TranslateTransform(0, cy / 4);           }      } }