Windowsのシステムフォント(デフォルトフォント)を取得する [C#]

Visual StudioでWindows フォーム アプリケーションのプロジェクトを新規作成して、フォームにコントロールを配置してテキストやキャプションを設定すると、コントトールやウィンドウの場所によって違ったフォントで表示されます。
コントールやウィンドウの特定の領域にはデフォルトのフォントが設定されているためです。
そこで今回は、Windowsのアプリケーションでフォームやダイアログボックスのテキストを表示する際に使用されるシステムフォントを取得する方法を紹介します。

システムフォントの取得

システムフォントはSystem.Drawing名前空間にあるSystemFontsクラスのプロパティから取得できます。

キャプションフォント

キャプションフォントはCaptionFontプロパティから取得できます。

CaptionFontプロパティはウィンドウのタイトルバーにテキストを表示するために使用されるフォント(Fontオブジェクト)を返します。

デフォルトフォント

デフォルトフォントはDefaultFontプロパティから取得できます。

DefaultFontプロパティはアプリケーションのダイアログボックスおよびフォームにテキストを表示するために使用される既定のフォント(Fontオブジェクト)を返します。

ダイアログフォント

ダイアログフォントはDialogFontプロパティから取得できます。

DialogFontプロパティはアプリケーションのダイアログボックスおよびフォームにテキストを表示するために使用されるフォント(Fontオブジェクト)を返します。

アイコンタイトルフォント

アイコンタイトルフォントはIconTitleFontプロパティから取得できます。

IconTitleFontプロパティはアイコンのタイトルを表示するために使用されるフォント(Fontオブジェクト)を返します。

メニューフォント

メニューフォントはMenuFontプロパティから取得できます。

MenuFontプロパティはメニューにテキストを表示するために使用されるフォント(Fontオブジェクト)を返します。

メッセージボックスフォント

メッセージボックスフォントはMessageBoxFontプロパティから取得できます。

MessageBoxFontプロパティはメッセージボックスにテキストを表示するために使用されるフォント(Fontオブジェクト)を返します。

スモールキャプションフォント

スモールキャプションフォントはSmallCaptionFontプロパティから取得できます。

SmallCaptionFontプロパティはツールウィンドウなどの小さなウィンドウのタイトルバーにテキストを表示するために使用されるフォント(Fontオブジェクト)を返します。

ステータスフォント

ステータスフォントはStatusFontプロパティから取得できます。

StatusFontプロパティはステータスバーにテキストを表示するために使用されるフォント(Fontオブジェクト)を返します。

コントロールのデフォルトフォントの取得

Windows フォーム アプリケーションのコントロールのデフォルトフォント(既定のフォント)は、System.Windows.Forms名前空間にあるControlクラスのDefaultFontメソッドで取得できます。

システムフォント名からフォントを取得

システムフォントはSystem.Drawing名前空間にあるSystemFontsクラスGetFontByName静的メソッドで取得することもできます。
GetFontByName静的メソッドの引数には、”CaptionFont”や”MessageBoxFont”などのシステムフォントの名前を文字列で指定します。

サンプルプログラム

Windows フォーム アプリケーションを使ったサンプルプログラムを作成します。
サンプルプログラムでは、システムフォントの一覧をテキストボックスに表示します。

ユーザーインターフェース

フォームのデザインは次のようになります。

システムフォントの一覧取得サンプルフォームデザイン

フォームにはMultilineプロパティをtrueに設定したテキストボックス(TextBoxコントロール)を配置します。

ソースコード

OnLoadメソッドをオーバーライドしてシステムフォントの一覧情報をテキストボックスに表示します。

サンプルプログラムの実行

プロジェクトを実行します。
システムフォントの一覧取得サンプルフォーム実行結果
サンプルプログラムを実行した結果、デフォルトフォント(DefaultFont)とダイアログフォント(DialogFont)のみ「MS UI Gothic」になっているのがわかります。その他は「Yu Gothic UI」になっています。