フォントファミリーとタイプフェースの指定
こんにちは、Visual Studio サポート チームです。
今回はフォントについてのお話です。
期待したデザインで文字をレンダリング (表示や印刷) するためには、適切なフォントファミリーとタイプフェース(書体)を指定することが重要です。
以下では、フォントファミリーとタイプフェースの指定で押さえておきたいポイントについて紹介したいと思います。
フォントファミリーとタイプフェースについて
多くのフォントファミリーでは、標準・ボールド・イタリック・ボールドイタリックの 4 種類のタイプフェースが組み込まれています。
しかし、タイプフェースの種類は、必ずしも、この 4 種類だけとは限らず、その他の種類が含まれる場合があり、Windows のフォントでもタイプフェースは多様化しています。
WPFなどのアプリケーション開発では、このような多様化したタイプフェースに対しては、FamilyTypeface クラスで適切な値を指定する必要があります。タイプフェースの種類が多い Arial で具体例を説明します。
Arialの例
まず、エクスプローラーでフォントフォルダー (%WINDIR%\Fonts) をオープンし、 "Arial" をダブルクリックして見ていただくと以下のタイプフェースが列挙されます。
Arial のタイプフェース
- やや狭い
- やや狭い斜体
- やや狭い太字
- やや狭い太字 太字
- 極太
- 斜体
- 太字
- 太字 太字
- 標準
標準的なタイプフェースの4 種類のみで考えてしまうと "やや狭い" を "Arial Narrow" というフォント ファミリーで指定したり、"極太" を "Arial Black" というフォントファミリーで指定しがちですが、実際には "やや狭い (Narrow) " も "極太 (Black) " も、フォントファミリー "Arial" のタイプフェースの1つです。
そのため、WPFアプリケーションで"Arial Narrow"などのフォントを表示するためには、FontFamily クラスで、"Arial" を指定し、FamilyTypeface クラスで以下のように指定する必要があります。
表示幅 FamilyTypeface.Stretch: Condensed (やや狭い) もしくは Medium (標準)
"Arial Narrow"の場合はCondensed を設定します。
太さ FamilyTypeface.Weight: Bold (太字)、Black (極太)、Normal (標準) のいずれか
スタイル FamilyTypeface.Style: Normal (標準) もしくは Italic (斜体)
適切な条件でフォントを選択しないとフォントの置き換えが行われてしまったり、文字化けが発生してしまいますのでご注意ください。