Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Font

using System; using System.Drawing; using System.Windows.Forms;     class FontMenuForm: Form {      protected string strText = "Sample Text";      protected Font font = new Font("Times New Roman", 24, FontStyle.Italic);          public static void Main()      {           Application.Run(new FontMenuForm());      }      public FontMenuForm()      {           ResizeRedraw = true;           Menu = new MainMenu();           Menu.MenuItems.Add("&Font!", new EventHandler(MenuFontOnClick));      }      void MenuFontOnClick(object obj, EventArgs ea)      {           FontDialog dlg = new FontDialog();           dlg.Font = font;               if (dlg.ShowDialog() == DialogResult.OK)           {                font = dlg.Font;                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)      {           SizeF sizef = grfx.MeasureString(strText, font);           Brush brush = new SolidBrush(clr);               grfx.DrawString(strText, font, brush, (cx - sizef.Width) / 2,                                                 (cy - sizef.Height) / 2);      }      public float GetAscent(Graphics grfx, Font font)      {           return font.GetHeight(grfx) *                      font.FontFamily.GetCellAscent(font.Style) /                          font.FontFamily.GetLineSpacing(font.Style);      }      public float GetDescent(Graphics grfx, Font font)      {           return font.GetHeight(grfx) *                      font.FontFamily.GetCellDescent(font.Style) /                          font.FontFamily.GetLineSpacing(font.Style);      }      public float PointsToPageUnits(Graphics grfx, Font font)      {           float fFontSize;               if (grfx.PageUnit == GraphicsUnit.Display)                fFontSize = 100 * font.SizeInPoints / 72;           else                fFontSize = grfx.DpiX * font.SizeInPoints / 72;               return fFontSize;      } }