コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
            }
        }