C#获取所有可用的FontFamily

时间:2011-03-17 17:19:58

标签: c# loops fonts font-face font-family

我有一个输入框,人们输入一个字体,它保存了他们输入的JPEG格式。一切正常。但是当他们输入类似“times new roman”的字体名称时,必须将其大写为“Times New Roman”,否则它将无效!

我可以以某种方式迭代所有可用的字体并将其作为下拉列表呈现给它们,这样就没有拼写问题而且它们肯定只会在系统上使用字体吗?

4 个答案:

答案 0 :(得分:9)

只需使用下一个代码:

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

答案 1 :(得分:7)

或者你可以直接绑定它:

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

答案 2 :(得分:2)

我的应用程序中有几个字体列表,所以我喜欢 加载列表一次并重用列表绑定到控件。

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

}

答案 3 :(得分:0)

这与加里的回答几乎相同,但更为紧凑:

public static readonly List<string> FontNames = FontFamily.Families.Select(f => f.Name).ToList();