DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

文字列を縁取りをして描画する

注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。

パス(GraphicsPathオブジェクト)に文字列を追加し、Graphics.DrawPathメソッドで描画することにより、文字列の縁を描画することができます。パスの描画方法につきましては、「パスを使って図形を描く」をご覧ください。

下の例では、ピクチャボックス(PictureBox1)に文字列"DOBON.NET"を黒の縁取りで表示しています。

VB.NET
コードを隠すコードを選択
'Imports System.Drawing

'描画先とするImageオブジェクトを作成する
Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height)
'ImageオブジェクトのGraphicsオブジェクトを作成する
Dim g As Graphics = Graphics.FromImage(canvas)

'GraphicsPathオブジェクトの作成
Dim gp As New System.Drawing.Drawing2D.GraphicsPath()
'GraphicsPathに文字列を追加する
Dim ff As New FontFamily("Arial")
gp.AddString("DOBON.NET", ff, 0, 50, _
             New Point(0, 0), StringFormat.GenericDefault)

'文字列の中を塗りつぶす
g.FillPath(Brushes.White, gp)
'文字列の縁を描画する
g.DrawPath(Pens.Black, gp)

'リソースを解放する
ff.Dispose()
g.Dispose()

'PictureBox1に表示する
PictureBox1.Image = canvas
C#
コードを隠すコードを選択
//using System.Drawing;

//描画先とするImageオブジェクトを作成する
Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height);
//ImageオブジェクトのGraphicsオブジェクトを作成する
Graphics g = Graphics.FromImage(canvas);

//GraphicsPathオブジェクトの作成
System.Drawing.Drawing2D.GraphicsPath gp =
    new System.Drawing.Drawing2D.GraphicsPath();
//GraphicsPathに文字列を追加する
FontFamily ff = new FontFamily("Arial");
gp.AddString("DOBON.NET", ff, 0, 50,
    new Point(0, 0), StringFormat.GenericDefault);

//文字列の中を塗りつぶす
g.FillPath(Brushes.White, gp);
//文字列の縁を描画する
g.DrawPath(Pens.Black, gp);

//リソースを解放する
ff.Dispose();
g.Dispose();

//PictureBox1に表示する
PictureBox1.Image = canvas;
  • 履歴:
  • 2012/8/4 表示する方法を、PictureBox.Imageプロパティを使った方法に変更。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • コードの先頭に記述されている「Imports ??? がソースファイルの一番上に書かれているものとする」(C#では、「using ???; がソースファイルの一番上に書かれているものとする」)の意味が分からないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。