2009-05-28 3 views
4

Можно ли изменить размер шрифта в .net winforms, не создавая новый шрифт с новым размером?Как изменить размер шрифта без создания нового шрифта

+0

Почему вы не можете использовать свойство шрифта? Какой контроль вы используете? Метка? Текстовое поле? Возможно, вы используете растровый шрифт, который не имеет больших размеров? Возможно, вы можете переключиться на шрифт TrueType или OpenType. – steamer25

+0

Я использую ярлык, который уменьшит его размер шрифта, если для него будет установлен более длинный текст, чтобы убедиться, что они будут соответствовать – jvanderh

ответ

4

№ Размер шрифта только для существующих объектов «Шрифт».

0

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

+0

Я думал то же самое ... но получается, что работает только с _style_ not size :( –

+0

Oops , вы правы. Я помню, что делал что-то вроде этого, но это было для создания жирного шрифта из нежирного шрифта. Создание шрифта другого размера потребует устранения необходимых свойств существующего шрифта. –

7

Вы можете сделать что-то подобное с помощью метода расширения.

Imports System.Runtime.CompilerServices 

Module FontExtensions 

<Extension()> Public Function ToSize(ByVal OriginalFont As Font, ByVal NewSize As Single) As Font 

     Dim NewFont As Font 

     NewFont = New Font(OriginalFont.FontFamily, NewSize, OriginalFont.Style) 

     Return NewFont 

    End Function 

End Module 

, а затем вызвать его, как это ...

SomeObject.Font = Font.ToSize(12) 

Он по-прежнему создает новый шрифт за кулисы, но ваш код приложения не загроможден с процессом создания.

+0

Не будет ли это утечка Объекты Font-GDI? – toong

Смежные вопросы