我正在使用Win2D.UWP来获取系统字体集。我需要过滤查询的字体并将它们分组为“ Serif”,“ Sans-Serif”,“ Decorative”等类别(例如Adobe应用程序或Corel Font Manager)。据我研究,信息可以通过带有参数Microsoft.Graphics.Canvas.Text.CanvasFontSet.GetPropertyValues
的CanvasFontPropertyIdentifier.SemanticTag
访问,但是不会以任何已安装的字体返回任何值。
还有另一种了解该信息的方法吗?请,任何有帮助的地方。
提前感谢
这是一个古老的问题,但是对于以后以后又提出完全相同的问题的人,有个好消息。
现在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()));
}