我正在使用Win2D.UWP来获得系统字体集。我需要过滤查询字体,并将它们按类别分组,如"Serif“、"Sans-Serif”、“装饰性”等(如Adobe应用程序或Corel字体管理器)。据我所研究,信息可以通过Microsoft.Graphics.Canvas.Text.CanvasFontSet.GetPropertyValues使用参数CanvasFontPropertyIdentifier.SemanticTag访问,但在我安装的任何字体中都不会返回任何值。
还有别的方法知道这些信息吗?拜托,任何事都会有帮助的。
提前感谢
发布于 2020-02-14 05:11:52
这是个老生常谈的问题,但对于那些后来提出同样问题的人来说,这是个好消息。
现在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()));
}https://stackoverflow.com/questions/45386944
复制相似问题