在 WPF 中查找字形的像素大小

Find pixel size of a glyph in WPF

我想查找 WPF 中字形的大小(以像素为单位)。这是字形的大小,不包括前导和尾随 space。我想要下图中第二个尺子代表的尺寸。这可能吗?

我已经尝试了 中描述的过程,得到了第一个标尺所代表的尺寸。 该答案提供的代码是:

var typeface = new GlyphTypeface(new Uri(fontpath));
var character = 'B';
var charIndex = typeface.CharacterToGlyphMap[character];

var width = typeface.AdvanceWidths[charIndex];
var height = typeface.Height - typeface.TopSideBearings[charIndex]
                             - typeface.BottomSideBearings[charIndex];

然后我通过

找到了像素大小
var widthInEms = width * emSize;
var heightInEms = height * emSize;

获取字形宽度和高度的一种简单方法是获取其轮廓几何体的边界大小:

var size = typeface.GetGlyphOutline(charIndex, emSize, 0d).Bounds.Size;