Font Menu

image_pdfimage_print

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

class FontMenu: Form
{
const int iPointSize = 24;
string strFacename;

public static void Main()
{
Application.Run(new FontMenu());
}
public FontMenu()
{
strFacename = Font.Name;

Menu = new MainMenu();

MenuItem mi = new MenuItem(“&Facename”);
mi.Popup += new EventHandler(MenuFacenameOnPopup);
mi.MenuItems.Add(” “); // Necessary for pop-up call
Menu.MenuItems.Add(mi);
}
void MenuFacenameOnPopup(object obj, EventArgs ea)
{
MenuItem miFacename = (MenuItem)obj;
FontFamily[] aff = FontFamily.Families;
EventHandler ehClick = new EventHandler(MenuFacenameOnClick);
MenuItem[] ami = new MenuItem[aff.Length];

for (int i = 0; i < aff.Length; i++) { ami[i] = new MenuItem(aff[i].Name); ami[i].Click += ehClick; if (aff[i].Name == strFacename) ami[i].Checked = true; } miFacename.MenuItems.Clear(); miFacename.MenuItems.AddRange(ami); } void MenuFacenameOnClick(object obj, EventArgs ea) { MenuItem mi = (MenuItem)obj; strFacename = mi.Text; Invalidate(); } protected override void OnPaint(PaintEventArgs pea) { Graphics grfx = pea.Graphics; Font font = new Font(strFacename, iPointSize); StringFormat strfmt = new StringFormat(); grfx.DrawString("Sample Text", font, new SolidBrush(ForeColor), ClientRectangle, strfmt); } } [/csharp]