Как рассчитать x-height, т.е. ex объекта Font?

X-height — это метрика шрифта, которая задается в терминах высоты em и составляет примерно 0,48 em, но это зависит от шрифта...

В CSS эти два модуля доступны, меня интересует бывший модуль. Существует также единица 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

Я хочу знать x-высоту данного объекта Font в С#. Я получаю высоту M следующим образом:

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

Но я не могу понять, как получить x-height.

Использование WinAPI допустимо. Неважно, как это делают браузеры. Они знают, как рассчитать значение ex, я тоже хочу знать, как получить это значение. Пожалуйста помоги!!

Спасибо.

Похожий вопрос, который помогает преобразовать шрифт в гарнитуру:

Как преобразовать System.Drawing .font в System.Windows.Media.Fonts или TypeFace


person Miguel Angelo    schedule 28.10.2010    source источник


Ответы (1)


Ознакомьтесь с классом GlyphTypeface или Класс FamilyTypeface.

person Mark Ransom    schedule 28.10.2010
comment
Оба класса предоставляют свойство XHeight. Спасибо... это путь. Он также имеет много других интересных свойств, касающихся метрик шрифта. Хотя это для WPF, легко преобразовать объект System.Drawing.Font в System.Windows.Media.Typeface. Я изменил свой вопрос, чтобы включить ссылку на связанный вопрос здесь, в SO. - person Miguel Angelo; 29.10.2010