Font: SizeInPoints

   
 

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

    


Text on Baseline

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

    


new Font(fontRegular, FontStyle.Italic);

   
 


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

    


new Font(strFont, fSize)

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); } } } [/csharp]

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

   
 



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

    


All font properties

   
 

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            + "
" +
                    "FontFamily: "         + Font.FontFamily      + "
" +
                    "FontStyle: "          + Font.Style           + "
" +
                    "Bold: "               + Font.Bold            + "
" +
                    "Italic: "             + Font.Italic          + "
" +
                    "Underline: "          + Font.Underline       + "
" +
                    "Strikeout: "          + Font.Strikeout       + "
" +
                    "Size: "               + Font.Size            + "
" +
                    "GraphicsUnit: "       + Font.Unit            + "
" +
                    "SizeInPoints: "       + Font.SizeInPoints    + "
" +
                    "Height: "             + Font.Height          + "
" +
                    "GdiCharSet: "         + Font.GdiCharSet      + "
" +
                    "GdiVerticalFont : "   + Font.GdiVerticalFont + "
" +
                    "GetHeight(): "        + Font.GetHeight()     + "
" +
                    "GetHeight(grfx): "    + Font.GetHeight(grfx) + "
" +
                    "GetHeight(100 DPI): " + Font.GetHeight(100),
                    Font, new SolidBrush(clr), Point.Empty);
     }
}

    


Color Dialog and Font Dialog


   

/*
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.ComponentModel;
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.ComponentModel.Container components = null;

        public ColorFontDialog()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();
            this.Text = "Font and Color Dialogs";
            this.button1.Text = "&amp;Font";
            this.button2.Text = "&amp;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;
        }
    }
}