/// <summary> /// 指定したマージンでテキストを描画する /// </summary> /// <param name="g">グラフィックス</param> /// <param name="text">描画するテキスト</param> /// <param name="font">描画するフォント</param> /// <param name="brush">色など</param> /// <param name="left">左位置</param> /// <param name="right">右位置</param> /// <param name="top">上位置</param> /// <param name="height">高さ</param> /// <param name="vmargin">配置(横)</param> /// <param name="hmargin">配置(縦)</param> protected virtual void DrawString(Graphics g, string text, Font font, Brush brush, float left, float right, float top, float height, EPrintMargin vmargin, EPrintMargin hmargin) { System.Drawing.SizeF size = g.MeasureString(text, font); float newTop = top; switch (hmargin) { case EPrintMargin.MARGIN_CENTER: newTop += (height - size.Height) / 2; break; case EPrintMargin.MARGIN_BOTTOM: newTop += (height - size.Height); break; } DrawString(g, text, font, brush, left, right, newTop, vmargin); }
/// <summary> /// 指定したマージンでテキストを描画する /// </summary> /// <param name="g">グラフィックス</param> /// <param name="text">描画するテキスト</param> /// <param name="font">描画するフォント</param> /// <param name="brush">色など</param> /// <param name="left">左位置</param> /// <param name="right">右位置</param> /// <param name="top">上位置</param> /// <param name="margin">配置</param> protected virtual void DrawString(Graphics g, string text, Font font, Brush brush, float left, float right, float top, EPrintMargin margin) { System.Drawing.SizeF size = g.MeasureString(text, font); float TextWidth = size.Width; if (TextWidth > right - left) { // 長すぎるので縮めて再実行 DrawString(g, text.Substring(0, text.Length - 1), font, brush, left, right, top, margin); } else { // float newleft = left; switch (margin) { case EPrintMargin.MARGIN_LEFT: break; case EPrintMargin.MARGIN_CENTER: newleft += ((right - left) - size.Width) / 2; break; case EPrintMargin.MARGIN_RIGHT: newleft += (right - left) - size.Width; break; } g.DrawString(text, font, brush, newleft, top); } }