Win2D获取语义标记值

时间:2017-07-29 08:05:44

标签: c# xaml uwp uwp-xaml win2d

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

还有另一种方法可以知道这些信息吗?请,任何事情都有帮助。

提前致谢

1 个答案:

答案 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()));
}