【C#.NET解説】文字の表現力を自在に操るFontクラスの基本と応用例

2025年5月1日木曜日

基本 描画

t f B! P L

名前空間 System.Drawing

文字の表現力を自在に操るFontクラスの基本と応用例

自己紹介

こんにちは、調和と正義を見守る者です。あなたのアプリケーションに美しく整った「文字」を授けるお手伝いをいたしましょう。
「Font」――それは、単なる文字の見た目を変えるだけの存在ではありません。ユーザー体験の質、情報の伝わり方、そして印象にまで深く関わる重要な力を持っています。
今日はこの「Font」クラスの持つ力を、私の言葉で丁寧にお伝えいたします。

基本機能

「Font」クラスは、テキストの見た目――つまりフォントの種類、サイズ、スタイル(太字や斜体など)を定義するためのものです。Windows Forms や GDI+ でテキストを描画するときに欠かせない存在です。

以下は基本的な使用例です。

C#

// フォントを作成(MS ゴシック、12pt、太字)
Font font = new Font("MS Gothic", 12, FontStyle.Bold);

このように簡単なコンストラクタで作成可能ですが、実は奥深い構成も可能なのです。

よく使う場面と注意点

このクラスは主に、以下のような場面で活用されます。
  • ラベルやボタン、テキストボックスなどのコントロールの文字表示に
  • Graphicsオブジェクトでの描画処理時に
ただし、注意点もあります。Fontオブジェクトはリソースを消費するため、使い終わったら明示的に`Dispose()`することが望ましいです。  

以下は注意点を含めたコード例です。

C#

// FontオブジェクトはDisposeで解放する
using (Font font = new Font("Arial", 10, FontStyle.Italic))
{
    // フォントを使った描画処理
}

文字の装いを操る多彩なコンストラクタとプロパティ

「Font」クラスは、非常に柔軟な初期化が可能です。たとえば「GraphicsUnit」や「GdiCharSet」などを指定するコンストラクタも存在します。
また、プロパティも実に多彩です。

  • Name: フォントの名前(例:"Arial")
  • Size: サイズ(ポイント単位)
  • Bold, Italic, Underline: それぞれのスタイル判定
  • Unit: 単位(GraphicsUnit.Pointなど)

詳細な使用例はこちらです。

C#

// 高度なFont生成
Font font = new Font(
    new FontFamily("Times New Roman"),
    14.5f,
    FontStyle.Underline,
    GraphicsUnit.Pixel,
    1, // GdiCharSet
    true // GdiVerticalFont
);

// プロパティの取得
string name = font.Name;
bool isBold = font.Bold;
float size = font.Size;
GraphicsUnit unit = font.Unit;

具体的な使い方

それでは、もう少し実務的なシーンにおける「Font」クラスの使用例を紹介いたします。

以下のように、Graphicsオブジェクトで描画に使うことも可能です。

C#

// PictureBoxなどのPaintイベントで使用
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    using (Font font = new Font("メイリオ", 16, FontStyle.Bold))
    {
        e.Graphics.DrawString("こんにちは、世界", font, Brushes.Black, new PointF(10, 10));
    }
}

以下は動的に作成したLabelのフォント変更です。

C#

using System;
using System.Drawing;
using System.Windows.Forms;

public FontExample()
{
    // ラベルを作成してフォームに追加
    Label label = new Label
    {
        Text = "これはカスタムフォントのテキストです。",
        Font = new Font("Arial", 16, FontStyle.Bold),
        AutoSize = true,
        Location = new Point(20, 20)
    };
    this.Controls.Add(label);
}

それ以外で使える便利なメソッド集

以下は、知っておくと役立つ追加メソッドやプロパティです。

  • Clone()
  • GetHashCode()
  • ToString()
  • Equals()
  • IsSystemFont
  • OriginalFontName
C#

// フォントのクローン
Font original = new Font("Arial", 12);
Font clone = (Font)original.Clone();

// 判定や表示
bool same = original.Equals(clone);
string info = original.ToString();
bool isSystem = original.IsSystemFont;

以下のように、あとから追加でスタイル追加も可能です。

C#

// 高度なFont生成
Font font = new Font(
    new FontFamily("Times New Roman"),
    14.5f,
    FontStyle.Underline,
    GraphicsUnit.Pixel
);

// FontStyle.Italicを追加
Font font = new Font(
    font.FontFamily, // 既存の Font の FontFamily を利用
    font.Size,
    font.Style | FontStyle.Italic, // 既存のスタイルに Italic を追加
    font.Unit,
    font.GdiCharSet,
    font.GdiVerticalFont
);

さあ、これであなたも文字の美を操る術を得ましたね。どうか調和のとれた、美しいアプリケーションを創り上げてくださいませ。

このブログを検索

QooQ