簡體   English   中英

列出Windows 10 Universal App中安裝的字體名稱

[英]List installed font names in Windows 10 Universal App

我正在使用C#構建一個Windows 10通用應用程序,它必須列出系統上已安裝字體的名稱。 該應用程序是一個地鐵/現代ui / windows 8.1應用程序,我使用SharpDX'技巧'來獲取名稱。

對於Windows 10 UAP,SharpDX不可用(但是?),因此不再適用。

有沒有其他方法來實現我的目標? 我應該考慮所描述的字體名稱的固定列表這里在推薦的字體? 例如,在桌面上這似乎相當有限。

提前致謝!

相同的基本想法:您仍將使用DirectWrite來獲取字體名稱。

您可以使用Win2D在Windows 8.1和通用Windows平台應用程序中從C#獲取DirectWrite。 CanvasTextFormat。 GetSystemFontFamilies將返回字體系列:

string[] fonts = Microsoft.Graphics.Canvas.Text.CanvasTextFormat.GetSystemFontFamilies();
foreach (string font in fonts)
{
    Debug.WriteLine(string.Format("Font: {0}", font));
}

我決定使用固定列表方法。 它不需要Win2D。

如果有人感興趣,這里是保證在支持UWP應用的所有Windows 10版本中可用的字體列表:

解析來自https://msdn.microsoft.com/en-us/library/windows/apps/hh700394.aspx

public static string[] FontNames = {
    "Arial", "Calibri", "Cambria", "Cambria Math", "Comic Sans MS", "Courier New",
    "Ebrima", "Gadugi", "Georgia",
    "Javanese Text Regular Fallback font for Javanese script", "Leelawadee UI",
    "Lucida Console", "Malgun Gothic", "Microsoft Himalaya", "Microsoft JhengHei",
    "Microsoft JhengHei UI", "Microsoft New Tai Lue", "Microsoft PhagsPa",
    "Microsoft Tai Le", "Microsoft YaHei", "Microsoft YaHei UI",
    "Microsoft Yi Baiti", "Mongolian Baiti", "MV Boli", "Myanmar Text",
    "Nirmala UI", "Segoe MDL2 Assets", "Segoe Print", "Segoe UI", "Segoe UI Emoji",
    "Segoe UI Historic", "Segoe UI Symbol", "SimSun", "Times New Roman",
    "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic",
    "Yu Gothic UI"
};

特別是,對於我的應用程序,我從這個列表中刪除了一些我不感興趣的內容,例如Javanese Text Regular Fallback font for Javanese script加上那些Microsoft *亞洲語言和Segoe MDL2 Assets plus (Web|Wing)dings僅用於圖標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM