2011-03-17 24 views
4

我有一個輸入框,人們在其中鍵入字體,並將它們保存爲JPEG格式。一切正常。但是,當他們輸入像'times new roman'這樣的字體名稱時,必須正確地將其大寫爲'Times New Roman',否則它將無法工作!C#獲取全部可用的FontFamily

我可以以某種方式迭代所有可用字體並將其作爲下拉列表呈現給他們,因此沒有拼寫問題,他們肯定只會在系統上使用字體?

回答

9

只需使用下面的代碼:

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

真棒謝謝! – 2011-03-17 17:24:22

+0

這裏是一個Powershell一個班輪爲了方便,特別是如果你只是想輸出:[System.Drawing.FontFamily] ::家庭 – dyslexicanaboko 2014-07-16 16:46:22

7

或者你可以綁定到它直接:

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

+0

只能在WPF中使用。 – 2011-03-17 17:31:56

2

我有字體列表在我的應用程序內的幾個景點,所以我想 負載列表一次並重新使用列表綁定到控件。

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

} 
0

這是幾乎一樣的Gary的回答,但多了幾分緊湊:

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