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