C# Get all available FontFamily

12,506

Solution 1

Simply use next code:

FontFamily[] ffArray = FontFamily.Families;
foreach (FontFamily ff in ffArray)
{
    //Add ff.Name to your drop-down list
}

Solution 2

Or you can just bind to it directly:

<ComboBox ItemsSource="{Binding Source={x:Static Fonts.SystemFontFamilies}}" />

Solution 3

I have font lists in several spots within my application so I like to load the list once and reuse the list to bind to the controls.

public List<string> GetFontFamilies()
{
    List<string> fontfamilies = new List<string>();                                   
    foreach (FontFamily family in FontFamily.Families)
    {
        fontfamilies.Add(family.Name);
    }
    return fontfamilies;       

}
Share:
12,506
Tom Gullen
Author by

Tom Gullen

Me Web developer. Website http://www.scirra.com

Updated on June 17, 2022

Comments

  • Tom Gullen
    Tom Gullen over 1 year

    I have an input box, and people type a font in and it saves what they type as a JPEG. All works fine. But when they type a font name like 'times new roman' it has to be capitalised properly to 'Times New Roman' or it wont work!

    Can I just iterate all the available fonts somehow and present it to them as a dropdown list so there are no spelling problems and they definitely will only be using fonts on the system?