地図の場合、道路や行政境界線に沿って文字を描くことと、縁取り文字を描くという二つのニーズがある。 このページでは、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);
}