地図の場合、道路や行政境界線に沿って文字を描くことと、縁取り文字を描くという二つのニーズがある。 このページでは、GraphicsPathを使って縁取り文字を描くということだけに焦点を絞る。
縁取り文字ではなく、単に、文字を描くには GraphicsPath は使う必要はない。DrawStringメソッドを使えばよい。
DrawString(string text, Font font, Brush br, PointF pnt);
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); }