10

我现在正在打印收据,但我不知道如何在图形模式下正确对齐文本。我尝试了几种不同的方法,但它们要么效率低下,要么不适用于我的情况。有没有办法可以轻松地将文本向右对齐?这是我现在的代码。

using (Font printFont = new Font("Courier New", 9.0f))
        {               
            e.Graphics.DrawString("Subtotal:", printFont, Brushes.Black, leftMargin + 80, HeightToPrint, new StringFormat());
            e.Graphics.DrawString(subtotal.ToString(), printFont, Brushes.Black, leftMargin + 150, HeightToPrint, new StringFormat());
        }
4

2 回答 2

23

为了使它能够右对齐文本,您需要指定一个布局矩形:

var format = new StringFormat() { Alignment = StringAlignment.Far };
var rect = new RectangleF( x, y, width, height );

e.Graphics.DrawString( text, font, brush, rect, format );

然后它将在该矩形内对齐字符串。

于 2013-10-18T20:19:43.753 回答
7

使用Graphics.MeasureString 方法获取渲染字符串的长度并将其绘制在rightMargin - measuredStringWidth.

于 2013-10-18T20:19:26.237 回答