Подтвердить что ты не робот

Почему шрифт в .NET размером 8 отображается как 8.25?

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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