3

次を使用してVB.netでテキストを描画しています。

gfx.DrawString(_bText, New Font("Tahoma", 5), Brushes.Black, New Point(25, 5))

ここで、gfxは私のコントロールを使用するグラフィックスオブジェクトです。xポイントは正しいですが、yを現在のコントロールの中心にする必要があります(垂直方向)。これを行う簡単な方法はありますか?

4

3 に答える 3

3

Graphics.MeasureStringメソッドを見る必要があります

これを使用すると、指定したコンテキストでテキストの高さを見つけることができます。次に、Y 値を見つけて、次のようなものを使用してテキストの描画を開始する必要があります。

(ControlHeight/2) - (TextHeight/2)
于 2011-10-31T12:22:14.600 に答える
2

StringFormat 引数を取る DrawString オーバーロードを使用します。その Alignment プロパティを Center に設定します。

于 2011-10-31T12:46:47.933 に答える
1

TextRenderer には VerticalCenter フラグがあります。

Dim r As New Rectangle(25, 0, myControl.ClientSize.Width - 25, _
                              myControl.ClientSize.Height)

Using myFont As New Font("Tahoma", 5)
  TextRenderer.DrawText(gfx, _bText, myFont, r, _
                        Color.Black, Color.Empty, _
                        TextFormatFlags.VerticalCenter)
End Using
于 2011-10-31T13:51:04.247 に答える