トップC# > GraphicsPathを使って文字を描く

GraphicsPathを使って文字を描く

はじめに

地図の場合、道路や行政境界線に沿って文字を描くことと、縁取り文字を描くという二つのニーズがある。 このページでは、GraphicsPathを使って縁取り文字を描くということだけに焦点を絞る。

最も簡単に文字を描く

縁取り文字ではなく、単に、文字を描くには GraphicsPath は使う必要はない。DrawStringメソッドを使えばよい。

   DrawString(string text, Font font, Brush br, PointF pnt);

GraphicsPathを使って縁取り文字を描く

DrawString と AddString の引数が全く同じ方が分かりやすいが、そうはなっていない。

しかし、次のようにすれば、分かりやすくなる。縁取り引数は Pen halo でもよい。

  void DrawString(Graphics g, string text, Font font, Brush br, PointF pnt, float halo) {
      GraphicsPath gp = new GraphicsPath();
      gp.AddString(text, font.FontFamily, (int)font.Style,
                font.Size, pnt, StringFormat.GenericDefault);
      Pen drawPen = new Pen(Color.White, halo);
      g.DrawPath(drawPen, gp);  // パスの線分を描画(縁取り)
      g.FillPath(br, gp);
  }

リファレンス

[1] 【.NET】文字を縁取りして描画する