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 回答