Получаем размер шрифта в пикселях в C#

Одна странность класса Font заключается в том, что его свойство «Размер» возвращает размер шрифта в единицах, которые использовались для создания шрифта. Свойство Unit класса Font указывает вам единицы, используемые для создания шрифта, но если вам нужен размер шрифта в определенных единицах (например, пикселях), вам необходимо обрабатывать несколько возможных случаев при преобразовании размера шрифта.

Пример При рисовании гладкого текста в GraphicsPath в C # используется следующий код, чтобы избежать необходимости конвертировать размер шрифта.

Этот код использует пиксели для определения шрифта формы. Позже программа использует следующий код для добавления строки к объекту GraphicsPath.

Метод AddString определяет размер шрифта в пикселях. Поскольку обработчик события Load формы определяет размер шрифта в пикселях, этот код может использовать this.Font.Size для размера, переданного методу AddString.

В этом примере используется другой метод. Вместо того, чтобы создавать шрифт с использованием единичных пикселей, он использует свойство PropertyInPoints объекта Font, чтобы получить размер шрифта в точках, а затем преобразует их в пиксели.

Строка ключевого кода выше выделена синим цветом. По определению точка принтера составляет 1/72 дюйма дюйма. Код получает размер шрифта в точках и делит на 72, чтобы получить дюймы. Затем он умножается на разрешение экрана в точках (пикселей) на дюйм, чтобы получить размер в пикселях. Он использует этот размер, чтобы добавить строку к объекту GraphicsPath.

Результаты, полученные методом DrawString объекта Graphics и объектом GraphicsPath, почти одинаковы. В этом примере метод DrawString использует значение TextRenderingHint AntiAlias. Если вы используете AntiAliasGridFit, вы получите немного лучший кернинг (межсимвольный интервал), чтобы получить более приятный результат, но тогда ширина строки не совпадает с результатом, заданным объектом GraphicsPath.

Источник: http://csharphelper.com/blog/2017/07/get-font-size-in-pixels-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *