我已经尝试了一段时间在Windows 10中找到API,它将为我提供有关在C#中开发通用应用程序时所需的字体指标的所有信息。
我试图解决的真正问题是沿路径绘制文字。我已经有代码来识别给定点沿路径给定距离的坐标。我目前缺乏的是能够识别角色之间的适当距离。
我也想知道字体特征,如前导,尾随,上升,下降等...我相信TextFormatter不再可用或可能,我不知道如何访问它
任何人都可以通过为我需要的课程提供示例或最好是正确的Microsoft文档来帮助我。
谢谢
答案 0 :(得分:0)
以下作品。这很糟糕,我确信有更好的方法。如果你经常需要CanvasFontFace对象,你最好缓存它们,因为这不是一个快速的getter。拥有CanvasFontFace对象后,您可以使用它来查找上升,下降等。
public static CanvasFontFace FindFontFace() {
// Very hacky . . . there has to be a better way . . .
CanvasFontFace r = null;
CanvasFontSet set = CanvasFontSet.GetSystemFontSet();
string fontFaceName = "Regular"; // change to your face . . .
string familyName = "Segoe UI"; // change to your family . . .
IReadOnlyList<CanvasFontFace> allFaces = set.Fonts;
string key = "en-us";
foreach (CanvasFontFace face in allFaces) {
IReadOnlyDictionary<string, string> faceNames = face.FaceNames;
IReadOnlyDictionary<string, string> familyNames = face.FamilyNames;
if (faceNames.ContainsKey(key)) {
if (familyNames.ContainsKey(key)) {
if (faceNames[key] == fontFaceName) {
if (familyNames[key] == familyName) {
r = face;
break;
}
}
}
}
}
// if r is null, you probably have an incorrect face name or family name.
return r;
}