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 に答える