Размер шрифта в Windows C # - PullRequest
       0

Размер шрифта в Windows C #

1 голос
/ 01 ноября 2011

Мне было интересно, что вызвало следующую проблему: если я создаю новый шрифт указанного размера в точках, а затем измеряю строку - снова в точках я получаю два разных значения?

т.е.

        Font font = new Font("Arial", 36, GraphicsUnit.Point);

        Graphics g =  CreateGraphics();

        g.PageUnit = GraphicsUnit.Point;

        string str = "hello";

        SizeF size = g.MeasureString(str, font);

size.height == 44, а не 36, что является указанным размером PT шрифта !!

Что происходит ?? !!!

Ответы [ 2 ]

1 голос
/ 01 ноября 2011

MeasureString дополняет возвращаемый прямоугольник, чтобы обеспечить возможность нависания и понижения символов. Это показывает типичный прямоугольник, возвращаемый MeasureString:

enter image description here

Естественно, что возвращаемая высота будет больше указанного размера шрифта в точках.

0 голосов
/ 01 ноября 2011

Взгляните на эту ссылку .Дополнительный пробел может быть причиной для разных размеров

Метод MeasureString предназначен для использования с отдельными строками и включает в себя небольшой объем дополнительного пробела до и после строки, что позволяет использовать нависающие глифы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...