我使用 Win2D.UWP 来获取系统字体集。我需要过滤查询的字体,并将它们分组为类别,如" Serif"," Sans-Serif","装饰"等等(如Adobe应用程序或Corel字体管理器)。
据我所研究,可以通过Microsoft.Graphics.Canvas.Text.CanvasFontSet.GetPropertyValues
使用参数CanvasFontPropertyIdentifier.SemanticTag
访问该信息,但不会在我安装的任何字体中返回任何值。
还有另一种方法可以知道这些信息吗?请,任何事情都有帮助。
提前致谢
答案 0 :(得分: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()));
}