C# Win2D获取语义标记值

C# Win2D获取语义标记值,c#,xaml,uwp,uwp-xaml,win2d,C#,Xaml,Uwp,Uwp Xaml,Win2d,我正在使用Win2D.UWP来设置系统字体。我需要过滤查询的字体,并将它们按“衬线”、“无衬线”、“装饰性”等类别进行分组(如Adobe应用程序或Corel字体管理器)。 据我所知,可以通过Microsoft.Graphics.Canvas.Text.CanvasFontSet.GetPropertyValues和参数CanvasFontPropertyIdentifier.SemanticTag访问信息,但在我安装的任何字体中都不会返回任何值 有没有其他方法知道这些信息?求你了,什么都可以帮上

我正在使用Win2D.UWP来设置系统字体。我需要过滤查询的字体,并将它们按“衬线”、“无衬线”、“装饰性”等类别进行分组(如Adobe应用程序或Corel字体管理器)。 据我所知,可以通过
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()));
}
var availableFonts=CanvasFontSet.GetSystemFontSet().Fonts;
foreach(可用字体中的var字体)
{
var familyNames=新列表();
foreach(字体为FamilyNames的var familyName)
{
familyNames.Add(familyName.Value);
}
Debug.WriteLine(string.Join(“,”,familyNames.Distinct());
}