次を使用してVB.netでテキストを描画しています。
gfx.DrawString(_bText, New Font("Tahoma", 5), Brushes.Black, New Point(25, 5))
ここで、gfxは私のコントロールを使用するグラフィックスオブジェクトです。xポイントは正しいですが、yを現在のコントロールの中心にする必要があります(垂直方向)。これを行う簡単な方法はありますか?
次を使用してVB.netでテキストを描画しています。
gfx.DrawString(_bText, New Font("Tahoma", 5), Brushes.Black, New Point(25, 5))
ここで、gfxは私のコントロールを使用するグラフィックスオブジェクトです。xポイントは正しいですが、yを現在のコントロールの中心にする必要があります(垂直方向)。これを行う簡単な方法はありますか?
Graphics.MeasureStringメソッドを見る必要があります
これを使用すると、指定したコンテキストでテキストの高さを見つけることができます。次に、Y 値を見つけて、次のようなものを使用してテキストの描画を開始する必要があります。
(ControlHeight/2) - (TextHeight/2)
StringFormat 引数を取る DrawString オーバーロードを使用します。その Alignment プロパティを Center に設定します。
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