Windows FormアプリケーションでコントロールのClearTypeが有効にならない

Windows FormアプリケーションでコントロールのClearTypeが有効にならない現象について紹介します。

概要

Windows8やWindows8.1で作成したWindows Formアプリケーションでコントロールのテキスト文字にClear Typeが適用されないことがあります。なお、Windows7 以前のWindowsではUIのフォントはClearTypeが適用されていないためあまり気になることはありません。

現象の確認

下図のフォームを作成します。フォームにLabel,CheckBox,RadioButton,Buttonを配置します。プロパティはデフォルトのままとします。
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像1

プロジェクトを実行します。フォームが表示されます。
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像2

ラベルやチェックボックスのフォントを確認するとアンチエイリアスがかかっておらず、ClearTypeが有効になっていません。
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像3

Windowsのアクセサリーアプリなどでは、コントロールのフォントにアンチエイリアスが適用されています。
(下図はWindows8.1のペイントブラシのイメージプロパティダイアログです。)
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像4

原因

コントロールのデフォルトのフォントが"MS UI Gothic"の場合、ClearTypeが適用できないフォントのため、アンチエイリアスがかかりません。

対策

コントロールのフォントを"メイリオ"などのClearTypeが有効なフォントに変更します。

サンプル

下図のフォームを作成します。右側のコントロールはフォントを"メイリオ"に変更します。
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像5

コントロールの"Font"プロパティのNameでフォントの種類を変更できます。
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像6

実行結果

プロジェクトを実行します。下図のフォームが表示されます。
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像7

右側のコントロールはClearTypeが有効な表示になります。
Windows FormアプリケーションでコントロールのClearTypeが有効にならない:画像8

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2015-01-13
Copyright © 1995–2025 iPentec all rights reserverd.