如何计算字体对象的x高(即ex)?

6

x-height是字体度量标准之一,以em-height为单位,大约为0.48个em,但这取决于字体本身...

CSS中提供了这两种单位,我对ex单位很感兴趣。还有一个em单位,ex单位也是以其为基础进行计算的。

以下表格显示了一些度量标准,可通过以下网站获得:

http://www.cs.tut.fi/~jkorpela/x-height.html

Arial               0.519
Arial Unicode MS    0.518
Calibri             0.466
Cambria             0.466
Candara             0.463
Code2000            0.444
Comics Sans MS      0.532
Courier             0.425
Courier New         0.423
Garamond            0.384
Georgia             0.481
Helvetica           0.523
Tahoma              0.545
Times New Roman     0.448
Trebuchet MS        0.523
Verdana             0.545

我想知道在C#中给定的字体对象的x高度。我可以通过以下方式获取M高度:

TextRenderer.MeasureText("M", font).Height

但我无法弄清楚如何获得x高度。
使用WinAPI是可以接受的。不管浏览器是怎样做到的,它们知道如何计算ex值,我也想知道如何获取这个值。请帮帮我!
谢谢。
相关问题有助于将字体转换为Typeface:
如何将System.Drawing.font转换为System.Windows.Media.Fonts或TypeFace
1个回答

2

两个类都提供了XHeight属性。谢谢...这是正确的方法。它还有许多其他有趣的属性,涉及字体度量。虽然它是为WPF设计的,但很容易将System.Drawing.Font对象转换为System.Windows.Media.Typeface。我已经修改了我的问题,包括在SO中与之相关的问题的链接。 - Miguel Angelo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接