Почему шрифт в .NET размером 8 отображается как 8,25? - PullRequest
18 голосов
/ 13 февраля 2009

Когда вы выбираете, например, размер 8 в диалоге шрифтов для Microsoft Sans Serif, он возвращает шрифт, который .NET отображает как имеющий размер 8,25?

Почему это точно?

Ответы [ 2 ]

33 голосов
/ 13 февраля 2009

Точка составляет 1/72 дюйма, поэтому шрифт должен иметь высоту 8/72 (0,111111) дюйма. Windows предполагает, что стандартное отображение составляет 96 DPI, если вы не потрудитесь настроить его иначе. Это означает, что он пытается создать шрифт высотой 10,66667 пикселей; округляется до 11 пикселей. Когда вы конвертируете это обратно в точки ((11/96) * 72), оно становится 8.25.

2 голосов
/ 13 февраля 2009

Это наиболее вероятно из-за способа, которым Windows Font Mapper вычисляет размеры шрифта. Существует небольшая разница между высотой пикселей в ячейках шрифта и обычными «точками» при 1/72 дюйма.

Больше информации здесь: http://msdn.microsoft.com/en-us/library/ms969909.aspx

...