3

我正在使用Win2D.UWP来获取系统字体集。我需要过滤查询的字体并将它们分组为“Serif”、“Sans-Serif”、“Decorative”等类别(如 Adob​​e 应用程序或 Corel Font Manager)。据我研究,可以通过Microsoft.Graphics.Canvas.Text.CanvasFontSet.GetPropertyValues参数访问信息,CanvasFontPropertyIdentifier.SemanticTag但这不会在我安装的任何字体中返回任何值。

还有其他方法可以知道该信息吗?拜托,任何事情都会有所帮助。

提前致谢

4

1 回答 1

0

这是一个老问题,但对于后来提出完全相同问题的人来说,这是一个好消息。

现在 Win2D.uwp 已经改进,因此我们可以使用以下代码实现它。

var availableFonts = CanvasFontSet.GetSystemFontSet().Fonts;

foreach (var font in availableFonts)
{
    var familyNames = new List<string>();

    foreach (var familyName in font.FamilyNames) 
    {
        familyNames.Add(familyName.Value);
    }

    Debug.WriteLine(string.Join(", ", familyNames.Distinct()));
}
于 2020-02-14T05:11:52.647 回答