Csharp/C Sharp/GUI Windows Form

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

All font properties

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class AllAboutFont: Form {

    public static void Main()
    {
         Application.Run(new AllAboutFont());
    }
    public AllAboutFont()
    {
         ResizeRedraw = true; 
    }
    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)
    {
         grfx.DrawString(
                   "Name: "               + Font.Name            + "\n" +
                   "FontFamily: "         + Font.FontFamily      + "\n" +
                   "FontStyle: "          + Font.Style           + "\n" +
                   "Bold: "               + Font.Bold            + "\n" +
                   "Italic: "             + Font.Italic          + "\n" +
                   "Underline: "          + Font.Underline       + "\n" +
                   "Strikeout: "          + Font.Strikeout       + "\n" +
                   "Size: "               + Font.Size            + "\n" +
                   "GraphicsUnit: "       + Font.Unit            + "\n" +
                   "SizeInPoints: "       + Font.SizeInPoints    + "\n" +
                   "Height: "             + Font.Height          + "\n" +
                   "GdiCharSet: "         + Font.GdiCharSet      + "\n" +
                   "GdiVerticalFont : "   + Font.GdiVerticalFont + "\n" +
                   "GetHeight(): "        + Font.GetHeight()     + "\n" +
                   "GetHeight(grfx): "    + Font.GetHeight(grfx) + "\n" +
                   "GetHeight(100 DPI): " + Font.GetHeight(100),
                   Font, new SolidBrush(clr), Point.Empty);
    }

}

</source>


Color Dialog and Font Dialog

<source lang="csharp"> /* Professional Windows GUI Programming Using C# by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,

  Zach Greenvoss, Shripad Kulkarni, Neil Whitlow

Publisher: Peer Information ISBN: 1861007663

  • /

using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; namespace ColorFontDialog {

   /// <summary>
   /// Summary description for ColorFontDialog.
   /// </summary>
   public class ColorFontDialog : System.Windows.Forms.Form
   {
       private System.Windows.Forms.Button button1;
       private System.Windows.Forms.Button button2;
       private System.Windows.Forms.Label label1;
       /// <summary>
       /// Required designer variable.
       /// </summary>
       private System.ruponentModel.Container components = null;
       public ColorFontDialog()
       {
           //
           // Required for Windows Form Designer support
           //
           InitializeComponent();
           this.Text = "Font and Color Dialogs";
           this.button1.Text = "&Font";
           this.button2.Text = "&Color";
           this.label1.Text = "Change my FONT and COLOR!";
           //
           // TODO: Add any constructor code after InitializeComponent call
           //
       }
       /// <summary>
       /// Clean up any resources being used.
       /// </summary>
       protected override void Dispose( bool disposing )
       {
           if( disposing )
           {
               if (components != null) 
               {
                   components.Dispose();
               }
           }
           base.Dispose( disposing );
       }
       #region Windows Form Designer generated code
       /// <summary>
       /// Required method for Designer support - do not modify
       /// the contents of this method with the code editor.
       /// </summary>
       private void InitializeComponent()
       {
           this.button1 = new System.Windows.Forms.Button();
           this.button2 = new System.Windows.Forms.Button();
           this.label1 = new System.Windows.Forms.Label();
           this.SuspendLayout();
           // 
           // button1
           // 
           this.button1.Location = new System.Drawing.Point(24, 8);
           this.button1.Name = "button1";
           this.button1.TabIndex = 0;
           this.button1.Text = "button1";
           this.button1.Click += new System.EventHandler(this.button1_Click_1);
           // 
           // button2
           // 
           this.button2.Location = new System.Drawing.Point(120, 8);
           this.button2.Name = "button2";
           this.button2.TabIndex = 1;
           this.button2.Text = "button2";
           this.button2.Click += new System.EventHandler(this.button2_Click);
           // 
           // label1
           // 
           this.label1.Location = new System.Drawing.Point(8, 48);
           this.label1.Name = "label1";
           this.label1.Size = new System.Drawing.Size(280, 48);
           this.label1.TabIndex = 2;
           this.label1.Text = "label1";
           // 
           // ColorFontDialog
           // 
           this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
           this.ClientSize = new System.Drawing.Size(292, 101);
           this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                         this.label1,
                                                                         this.button2,
                                                                         this.button1});
           this.Name = "ColorFontDialog";
           this.Text = "ColorFontDialog";
           this.ResumeLayout(false);
       }
       #endregion
       /// <summary>
       /// The main entry point for the application.
       /// </summary>
       [STAThread]
       static void Main() 
       {
           Application.Run(new ColorFontDialog());
       }
       private void button2_Click(object sender, System.EventArgs e)
       {
           ColorDialog cd = new ColorDialog();
           cd.AllowFullOpen = true;   // allow custom colors
           //cd.FullOpen = true;   // shows custom colors automatically
           cd.Color = Color.DarkBlue;  // sets the custom color
           //cd.Color = Color.Blue;   // set the basic color
           if(cd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
               this.label1.ForeColor = cd.Color;
       }
       private void button1_Click_1(object sender, System.EventArgs e)
       {
           FontDialog fd = new FontDialog();
           fd.ShowColor = true;
           fd.Color = Color.Blue;
           fd.ShowApply = true;   // ColorDialog does not provide this option!!!
           fd.Apply += new EventHandler(ApplyFont);
           if(fd.ShowDialog() != System.Windows.Forms.DialogResult.Cancel)
               ChangeFont(fd);
       }
       private void ApplyFont(object o, EventArgs ea)
       {
           ChangeFont((FontDialog)o);
       }
       private void ChangeFont(FontDialog fd)
       {
           this.label1.Font = fd.Font;
           this.label1.ForeColor = fd.Color;
       }
   }

}

      </source>


Font: GetHeight

<source lang="csharp">

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

}

</source>


Font list

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; namespace FontList {

 /// <summary>
 /// Summary description for FontListForm.
 /// </summary>
 public class FontListForm : System.Windows.Forms.Form
 {
   private System.Windows.Forms.ListBox listBox1;
   /// <summary>
   /// Required designer variable.
   /// </summary>
   private System.ruponentModel.Container components = null;
   public FontListForm()
   {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     InitForm ();
     //
     // TODO: Add any constructor code after InitializeComponent call
     //
   }
   FontFamily [] fonts;
   protected void InitForm ()
   {
     fonts = FontFamily.Families;
     foreach (FontFamily font in fonts)
       listBox1.Items.Add (font.Name);
   }
   /// <summary>
   /// Clean up any resources being used.
   /// </summary>
   protected override void Dispose( bool disposing )
   {
     if( disposing )
     {
       if (components != null) 
       {
         components.Dispose();
       }
     }
     base.Dispose( disposing );
   }
   #region Windows Form Designer generated code
   /// <summary>
   /// Required method for Designer support - do not modify
   /// the contents of this method with the code editor.
   /// </summary>
   private void InitializeComponent()
   {
     this.listBox1 = new System.Windows.Forms.ListBox();
     this.SuspendLayout();
     // 
     // listBox1
     // 
     this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
     this.listBox1.Location = new System.Drawing.Point(22, 21);
     this.listBox1.Name = "listBox1";
     this.listBox1.Size = new System.Drawing.Size(226, 190);
     this.listBox1.TabIndex = 0;
     this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_OnDoubleClick);
     this.listBox1.MeasureItem += new System.Windows.Forms.MeasureItemEventHandler(this.listBox1_OnMeasureItem);
     this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_OnDrawItem);
     this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_OnSelChanged);
     // 
     // FontListForm
     // 
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(266, 243);
     this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                     this.listBox1});
     this.Name = "FontListForm";
     this.Text = "Font Families";
     this.ResumeLayout(false);
   }
   #endregion
   /// <summary>
   /// The main entry point for the application.
   /// </summary>
   [STAThread]
   static void Main() 
   {
     Application.Run(new FontListForm());
   }
   private void listBox1_OnDrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
   {
     Rectangle rc = e.Bounds;
     string strSample = "The quick red fox jumps over the lazy brown dog";
     Font fntText;
     Font fntSample;
     int cy = 3 * (rc.Bottom - rc.Top) / 4;
     try
     {
       fntText = new Font ("Times New Roman", 8, GraphicsUnit.Point);
     }
     catch (ArgumentException)
     {
       MessageBox.Show ("Cannot create Times New Roman font", "Pied font",
         MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
       return;
     }
     try
     {
       fntText = new Font ("Times New Roman", 8, GraphicsUnit.Point);
       fntSample = new Font (fonts[e.Index], 8, GraphicsUnit.Point);
     }
     catch (ArgumentException)
     {
       DialogResult mbResult = MessageBox.Show("Cannot open font " + fonts[e.Index].Name +"\nDo you want to delete this item from the list","Pied Font Error", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
       switch (mbResult)
       {
         case DialogResult.Yes:
           listBox1.Items.RemoveAt (e.Index);
           return;
         case DialogResult.No:
           break;
       }
       strSample = "Cannot open font " + fonts[e.Index].Name;
       fntSample = fntText;
     }
     Brush brush;
     string str = fonts[e.Index].Name + " -- ";
     if ((e.State & DrawItemState.Selected) != 0)
     {
       e.Graphics.FillRectangle (Brushes.DarkBlue, rc);
       e.DrawFocusRectangle ();
       brush = Brushes.White;
     }
     else
     {
       e.Graphics.FillRectangle (Brushes.White, rc);
       brush = Brushes.Black;
     }
     e.Graphics.DrawString (str, fntText, brush, rc);
     StringFormat format = new StringFormat ();
     format.LineAlignment = StringAlignment.Center;
     format.FormatFlags = StringFormatFlags.LineLimit;
     SizeF size = e.Graphics.MeasureString (str, fntText);
     rc = new Rectangle (rc.Left + (int) (size.Width + .5),
       rc.Top, rc.Width, rc.Height);
     e.Graphics.DrawString (strSample, fntSample, brush, rc, format);
     fntText.Dispose ();
     fntSample.Dispose();
   }
   private void listBox1_OnSelChanged(object sender, System.EventArgs e)
   {
     listBox1.Invalidate ();
   }
   private void listBox1_OnMeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
   {
     MeasureItemEventArgs args = e;
     Font plain = new Font ("Times New Roman", 10, GraphicsUnit.Point);
     SizeF size = e.Graphics.MeasureString ("Test", plain);
     args.ItemHeight = (int) (size.Height + .5);
     plain.Dispose ();
   }
   private void listBox1_OnDoubleClick(object sender, System.EventArgs e)
   {
     if (e is ListChangedEventArgs)
     {
       frmSampleText stuff = new frmSampleText ();
     }
   }
 }
 /// <summary>
 /// Summary description for frmSampleText.
 /// </summary>
 public class frmSampleText : System.Windows.Forms.Form
 {
   private System.Windows.Forms.TextBox textBox1;
   /// <summary>
   /// Required designer variable.
   /// </summary>
   private System.ruponentModel.Container components = null;
   public frmSampleText()
   {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     //
     // TODO: Add any constructor code after InitializeComponent call
     //
   }
   /// <summary>
   /// Clean up any resources being used.
   /// </summary>
   protected override void Dispose( bool disposing )
   {
     if( disposing )
     {
       if(components != null)
       {
         components.Dispose();
       }
     }
     base.Dispose( disposing );
   }
   #region Windows Form Designer generated code
   /// <summary>
   /// Required method for Designer support - do not modify
   /// the contents of this method with the code editor.
   /// </summary>
   private void InitializeComponent()
   {
     this.textBox1 = new System.Windows.Forms.TextBox();
     this.SuspendLayout();
     // 
     // textBox1
     // 
     this.textBox1.Location = new System.Drawing.Point(8, 8);
     this.textBox1.Multiline = true;
     this.textBox1.Name = "textBox1";
     this.textBox1.Size = new System.Drawing.Size(272, 136);
     this.textBox1.TabIndex = 0;
     this.textBox1.Text = "textBox1";
     // 
     // frmSampleText
     // 
     this.AutoScaleBaseSize = new System.Drawing.Size(6, 16);
     this.ClientSize = new System.Drawing.Size(296, 157);
     this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                     this.textBox1});
     this.Name = "frmSampleText";
     this.Text = "Sample Text";
     this.ResumeLayout(false);
   }
   #endregion
 }

}


      </source>


Font: SizeInPoints

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class HowdyWorld: Form {

    public static void Main()
    {
         Application.Run(new HowdyWorld());
    }
    public HowdyWorld()
    {
         ResizeRedraw = true; 
         MinimumSize = SystemInformation.MinimumWindowSize + new Size(0,1);
         
    }
    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)
    {
         Font  font   = new Font("Times New Roman", 10, FontStyle.Italic);
         SizeF sizef  = grfx.MeasureString(Text, font);
         float fScale = Math.Min(cx / sizef.Width, cy / sizef.Height);
  
         font = new Font(font.Name, fScale * font.SizeInPoints, font.Style);
         sizef = grfx.MeasureString(Text, font);
  
         grfx.DrawString(Text, font, new SolidBrush(clr), 
                         (cx  - sizef.Width ) / 2, (cy - sizef.Height) / 2);
    }

}

</source>


Font with different size

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class TwentyFourPointPrinterFonts: Form {

    public static void Main()
    {
         Application.Run(new TwentyFourPointPrinterFonts());
    }
    public TwentyFourPointPrinterFonts()
    {
         Text = "Twenty-Four Point Printer Fonts";
         ResizeRedraw = true; 
    }
    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)
    {
         Brush  brush     = new SolidBrush(clr);
         float  y         = 0;
         Font   font;
         string strFamily = "Times New Roman";
  
         font = new Font(strFamily, 24);
         grfx.DrawString("No GraphicsUnit, 24 points", font, brush, 0, y);
         y += font.GetHeight(grfx);
  
         font = new Font(strFamily, 24, GraphicsUnit.Point);
         grfx.DrawString("GraphicsUnit.Point, 24 units", font, brush, 0, y);
         y += font.GetHeight(grfx);
  
         font = new Font(strFamily, 1/ 3f, GraphicsUnit.Inch);
         grfx.DrawString("GraphicsUnit.Inch, 1/3 units", font, brush, 0, y);
         y += font.GetHeight(grfx);
  
         font = new Font(strFamily, 25.4f / 3, GraphicsUnit.Millimeter);
         grfx.DrawString("GraphicsUnit.Millimeter, 25.4/3 units", 
                         font, brush, 0, y);
         y += font.GetHeight(grfx);
  
         font = new Font(strFamily, 100, GraphicsUnit.Document);
         grfx.DrawString("GraphicsUnit.Document, 100 units", 
                         font, brush, 0, y);
         y += font.GetHeight(grfx);
  
         font = new Font(strFamily, 100f / 3, GraphicsUnit.Pixel);
         grfx.DrawString("GraphicsUnit.Pixel, " + 100f / 3 + " units",
                         font, brush, 0, y);
         y += font.GetHeight(grfx);
  
         font = new Font(strFamily, 100f / 3, GraphicsUnit.World);
         grfx.DrawString("GraphicsUnit.World, " + 100f / 3 + " units", 
                         font, brush, 0, y);
    }

}

</source>


Get all system installed font

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Text;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Test{
   static void Main() 
   {
     InstalledFontCollection fonts = new InstalledFontCollection();
     for(int i = 0; i < fonts.Families.Length; i++)
     {
       Console.WriteLine(fonts.Families[i].Name);
     }
   }
 }
          
      </source>


Get the font in a FontDialog

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

public class MainClass {

   private FontDialog fontDlg = new FontDialog();
   private Font currFont = new Font("Times New Roman", 12);
   public static void Main() {
       FontDialog fontDlg = new FontDialog();
       if (fontDlg.ShowDialog() != DialogResult.Cancel) {
           Console.WriteLine(fontDlg.Font);
       }
   }

}

</source>


Load all system installed fonts

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form {

 private System.Windows.Forms.GroupBox groupBox1;
 private System.Windows.Forms.ruboBox lstFonts;
 private System.Windows.Forms.Label label1;
 private System.Windows.Forms.StatusStrip statusBar;
 private System.Windows.Forms.ToolStripStatusLabel statusLabel;
 public Form1() {
       InitializeComponent();
   System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
   foreach (FontFamily family in fonts.Families)
   {
     lstFonts.Items.Add(family.Name);
   }
 }
 private void lstFonts_SelectedIndexChanged(object sender, EventArgs e)
 {
       this.Invalidate();
 }
 private void Form1_Paint(object sender, PaintEventArgs e)
 {
   if (lstFonts.SelectedIndex != -1)
   {
           e.Graphics.DrawString(lstFonts.Text, new Font(lstFonts.Text, 50), Brushes.Black, 10, 50);
           statusBar.Items[0].Text = lstFonts.Text;
   }
 }
 private void InitializeComponent()
 {
   this.groupBox1 = new System.Windows.Forms.GroupBox();
   this.lstFonts = new System.Windows.Forms.ruboBox();
   this.label1 = new System.Windows.Forms.Label();
   this.statusBar = new System.Windows.Forms.StatusStrip();
   this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel();
   this.groupBox1.SuspendLayout();
   this.statusBar.SuspendLayout();
   this.SuspendLayout();
   // 
   // groupBox1
   // 
   this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
         | System.Windows.Forms.AnchorStyles.Right)));
   this.groupBox1.Controls.Add(this.lstFonts);
   this.groupBox1.Controls.Add(this.label1);
   this.groupBox1.Location = new System.Drawing.Point(7, 0);
   this.groupBox1.Name = "groupBox1";
   this.groupBox1.Size = new System.Drawing.Size(497, 40);
   this.groupBox1.TabIndex = 1;
   this.groupBox1.TabStop = false;
   // 
   // lstFonts
   // 
   this.lstFonts.DropDownStyle = System.Windows.Forms.ruboBoxStyle.DropDownList;
   this.lstFonts.DropDownWidth = 340;
   this.lstFonts.FormattingEnabled = true;
   this.lstFonts.Location = new System.Drawing.Point(100, 12);
   this.lstFonts.Name = "lstFonts";
   this.lstFonts.Size = new System.Drawing.Size(340, 21);
   this.lstFonts.TabIndex = 1;
   this.lstFonts.SelectedIndexChanged += new System.EventHandler(this.lstFonts_SelectedIndexChanged);
   // 
   // label1
   // 
   this.label1.Location = new System.Drawing.Point(12, 16);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(80, 12);
   this.label1.TabIndex = 0;
   this.label1.Text = "Choose Font:";
   // 
   // statusBar
   // 
   this.statusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
       this.statusLabel});
   this.statusBar.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table;
   this.statusBar.Location = new System.Drawing.Point(0, 155);
   this.statusBar.Name = "statusBar";
   this.statusBar.Size = new System.Drawing.Size(516, 22);
   this.statusBar.TabIndex = 2;
   this.statusBar.Text = "statusStrip1";
   // 
   // statusLabel
   // 
   this.statusLabel.Name = "statusLabel";
   // 
   // Form1
   // 
   this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
   this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
   this.ClientSize = new System.Drawing.Size(516, 177);
   this.Controls.Add(this.groupBox1);
   this.Controls.Add(this.statusBar);
   this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
   this.Text = "Font Viewer";
   this.groupBox1.ResumeLayout(false);
   this.statusBar.ResumeLayout(false);
   this.ResumeLayout(false);
   this.PerformLayout();
 }
 [STAThread]
 static void Main()
 {
   Application.EnableVisualStyles();
   Application.Run(new Form1());
 }

}


      </source>


new Font(fontRegular, FontStyle.Italic);

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms; class BoldAndItalic : Form {

   public static void Main() {
       Application.Run(new BoldAndItalic());
   }
   public BoldAndItalic() {
       Text = "Bold and Italic Text";
       ResizeRedraw = true;
   }
   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) {
       float x = 0;
       float y = 0;
       grfx.DrawString("text", new Font(this.Font, FontStyle.Bold), new SolidBrush(Color.AliceBlue), x, y);
   }

}

</source>


new Font(strFont, fSize)

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class FontSizes: Form {

    public static void Main()
    {
         Application.Run(new FontSizes());
    }
    public FontSizes()
    {
         Text = "Font Sizes";
         ResizeRedraw = true; 
    }
    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)
    {    
         string strFont = "Times New Roman";
         Brush  brush   = new SolidBrush(clr);
         float  y       = 0;
  
         for (float fSize = 6; fSize <= 12; fSize += 0.25f)
         {
              Font font = new Font(strFont, fSize);
              grfx.DrawString(strFont + " in " + fSize + " points", 
                              font, brush, 0, y);
         }
    }

}

</source>


new Font("Times New Roman", 10, FontStyle.Italic)

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class HowdyWorld: Form {

    public static void Main()
    {
         Application.Run(new HowdyWorld());
    }
    public HowdyWorld()
    {
         ResizeRedraw = true; 
         MinimumSize = SystemInformation.MinimumWindowSize + new Size(0,1);
         
    }
    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)
    {
         Font  font   = new Font("Times New Roman", 10, FontStyle.Italic);
         SizeF sizef  = grfx.MeasureString(Text, font);
         float fScale = Math.Min(cx / sizef.Width, cy / sizef.Height);
  
         grfx.DrawString(Text, font, new SolidBrush(clr), 
                         (cx  - sizef.Width ) / 2, (cy - sizef.Height) / 2);
    }

}

</source>


System Fonts: Icon Title Font

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.Win32; public class Form1 : Form {

   private System.Windows.Forms.Label label2;
   
 public Form1() {
       this.Font = SystemFonts.IconTitleFont;
       this.AutoScaleDimensions = new System.Drawing.SizeF(6.0F, 13.0F);
       InitializeComponent();
       SystemEvents.UserPreferenceChanged += new UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged);
 }
   private void SystemEvents_UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e)
   {
       if (e.Category == UserPreferenceCategory.Window)
       {
           this.Font = SystemFonts.IconTitleFont;
       }
   }
   private void InitializeComponent()
   {
       this.label2 = new System.Windows.Forms.Label();
       this.SuspendLayout();
       // 
       // label2
       // 
       this.label2.Location = new System.Drawing.Point(12, 9);
       this.label2.Name = "label2";
       this.label2.Size = new System.Drawing.Size(220, 55);
       this.label2.TabIndex = 2;
       this.label2.Text = "Try changing the Small Fonts/Large Fonts setting for th" +
           "e computer.";
       // 
       // Form1
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.ClientSize = new System.Drawing.Size(244, 138);
       this.Controls.Add(this.label2);
       this.Text = "Form1";
       this.ResumeLayout(false);
   }
 [STAThread]
 static void Main()
 {
   Application.EnableVisualStyles();
   Application.Run(new Form1());
 }

}


      </source>


Text on Baseline

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class TextOnBaseline: Form{

    public static void Main() {
         Application.Run(new TextOnBaseline());
    }
    public TextOnBaseline() {
         ResizeRedraw = true; 
    }
    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) {
         float yBaseline = cy / 2;
         Pen   pen       = new Pen(clr);
  
         grfx.DrawLine(pen, 0, yBaseline, cx, yBaseline);
  
         Font font = new Font("Times New Roman", 144);
  
         float cyLineSpace = font.GetHeight(grfx);
         int   iCellSpace  = font.FontFamily.GetLineSpacing(font.Style);
         int   iCellAscent = font.FontFamily.GetCellAscent(font.Style);
         float cyAscent    = cyLineSpace * iCellAscent / iCellSpace;
  
         grfx.DrawString("Baseline", font, new SolidBrush(clr),
                         0, yBaseline - cyAscent);
    }

}

</source>


Timer based animation for font

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Text;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class FontForm : System.Windows.Forms.Form
 {
   private Timer timer;
   private int swellValue;
   private string fontFace = "WingDings";
   public FontForm()
   {
     InitializeComponent();
     timer = new Timer();
     Text = "Font App";
     Width = 425;
     Height = 150;
     BackColor = Color.Honeydew;
     CenterToScreen();
     timer.Enabled = true;
     timer.Interval = 100;
     timer.Tick += new EventHandler(FontForm_OnTimer);
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 253);
     this.Text = "Form1";
     this.Resize += new System.EventHandler(this.FontForm_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.FontForm_Paint);
   }
   static void Main() 
   {
     Application.Run(new FontForm());
   }
   private void FontForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
     Graphics g = e.Graphics;
     Font theFont = new Font(fontFace, 12 + swellValue);
     string message = "www.nfex.ru";  
 
     float windowCenter = this.DisplayRectangle.Width / 2;             
     SizeF stringSize = e.Graphics.MeasureString(message, theFont);
     float startPos = windowCenter - (stringSize.Width / 2);
     g.DrawString(message, theFont, 
       new SolidBrush(Color.Blue), startPos, 10);
   }
   private void FontForm_Resize(object sender, System.EventArgs e)
   {
     Rectangle myRect = new Rectangle(0, 100, 
       ClientRectangle.Width, ClientRectangle.Height); 
     Invalidate(myRect);
   }
   private void FontForm_OnTimer(object sender, EventArgs e)
   {
     swellValue += 5;
     if(swellValue >= 50)
       swellValue = 0;
     Invalidate(new Rectangle(0, 0, ClientRectangle.Width, 100));
   }
 }
          
      </source>