InstalledFontCollection Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Represents the fonts installed on the system. This class cannot be inherited.

Namespace:   System.Drawing.Text
Assembly:  System.Drawing (in System.Drawing.dll)


public sealed class InstalledFontCollection : FontCollection


Initializes a new instance of the InstalledFontCollection class.


Gets the array of FontFamily objects associated with this FontCollection. (Inherited from FontCollection.)


Releases all resources used by this FontCollection.(Inherited from FontCollection.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Returns a string that represents the current object.(Inherited from Object.)

The InstalledFontCollection allows you to get a list of fonts families that are installed on the computer running the application with its Families property. For additional information on fonts and text, including example code, see Using Fonts and Text.

Do not use the InstalledFontCollection class to install a font to Windows. Instead use the GDI AddFontResource function. An InstalledFontCollection object sees only fonts that are installed in Windows before the object is created.

The following example shows how to get a list of fonts that support the regular FontStyle.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler.

InstalledFontCollection ifc = new InstalledFontCollection();
private void EnumerateInstalledFonts(PaintEventArgs e)
    FontFamily[] families = ifc.Families;
    float x = 0.0F;
    float y = 0.0F;
    for (int i = 0; i < ifc.Families.Length; i++)
        if (ifc.Families[i].IsStyleAvailable(FontStyle.Regular))
            e.Graphics.DrawString(ifc.Families[i].Name, new Font(ifc.Families[i], 12), 
       Brushes.Black, x, y);
            y += 20;
            if (y % 700 == 0)
                x += 140;
                y = 0;

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top