獲取已安裝的所有字體列表
System.Drawing.FontFamily
1 StringBuilder str = new StringBuilder(2000); 2 InstalledFontCollection fonts = new InstalledFontCollection(); 3 foreach (FontFamily family in fonts.Families) 4 { 5 str.Append(family.Name); 6 str.AppendLine(); 7 } 8 ContentTextBlock.Text = str.ToString();
獲取區域語言字體列表
System.Windows.Media.FontFamily
1 StringBuilder str = new StringBuilder(2000); 2 CultureInfo currentCulture = CultureInfo.CurrentUICulture; 3 CultureInfo enUsCultureInfo = new CultureInfo("en-US"); 4 foreach (var family in Fonts.SystemFontFamilies) 5 { 6 foreach (var keyPair in family.FamilyNames) 7 { 8 var specificCulture = keyPair.Key.GetSpecificCulture(); 9 if (specificCulture.Equals(currentCulture) || specificCulture.Equals(enUsCultureInfo)) 10 { 11 if (keyPair.Key != null && !string.IsNullOrEmpty(keyPair.Value)) 12 { 13 str.Append(keyPair.Value); 14 str.AppendLine(); 15 } 16 } 17 } 18 } 19 ContentTextBlock.Text = str.ToString();
注:有些電腦因系統缺陷或者系統更新沖突,導致System.Windows.Media.Fonts引用失敗。所以建議加個異常捕獲處理。