右对齐印刷文本

Nat*_*han 7 .net c# winforms visual-studio-2012

我现在正在打印收据,但我无法弄清楚如何在图形模式下正确对齐文本.我尝试了几种不同的东西,但它们要么效率低下,要么在我的情况下不起作用.有没有办法可以轻松地将文字对齐到右边?这是我现在的代码.

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());
        }
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 18

为了能够正确对齐文本,您需要指定布局矩形:

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

e.Graphics.DrawString( text, font, brush, rect, format );
Run Code Online (Sandbox Code Playgroud)

然后它将对齐该矩形内的字符串.


And*_*ton 6

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