2009-05-28 14 views
4

新しいフォントを新しいサイズで作成しなくても、.net winformsでフォントのサイズを変更できますか?新しいフォントを作成せずにフォントサイズを変更する方法

+0

なぜフォントプロパティを使用できないのですか?どのコントロールを使用していますか?ラベル?テキストボックス? もっと大きなサイズのラスターフォントを使用しているのでしょうか?たぶん、TrueTypeまたはOpenTypeフォントに切り替えることができます。 – steamer25

+0

私は長いテキストがそれに合っていることを確認するためにフォントサイズを小さくするラベルを使用しています – jvanderh

答えて

4

番号既存の「フォント」オブジェクトのフォントサイズは読み取り専用です。

0

基本フォントを使用して新しいサイズを渡すコンストラクタメソッドを使用していることを確認してください。これにより、他のアプローチのコードがいくつか保存されます。

+0

私は同じことを考えていました...しかし、それは_style_でないサイズでのみ動作します。( –

+0

あなたは正しいです。私はこのようなことを思い出しましたが、太字でないフォントから太字のフォントを作成することでした。別のサイズのフォントを作成すると、既存のフォントの必要なプロパティを分割する必要があります。 –

7

Extensionメソッドでこれを行うことができます。

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

関連する問題