OK, now I think I understand. You need to calculate where to start drawing vertically.
I put a PictureBox and a Button on a form, added your extension method, and used this code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim lines As New List(Of String)
lines.Add("The quick brown")
lines.Add("fox jumps over")
lines.Add("the lazy dog.")
lines.Add("This line is too wide to fit the available space.")
Dim fmt = StringFormat.GenericTypographic
fmt.Alignment = StringAlignment.Center
Using fnt = New Font("Arial", 8)
Using brsh = New SolidBrush(Color.Black)
Using g = PictureBox1.CreateGraphics
Dim lineY As Integer = (PictureBox1.Height - lines.Count * fnt.Height) \ 2
For Each line As String In lines
lineY = CInt(g.DrawText(line, fnt, brsh, 0, lineY, PictureBox1.Width, fmt))
Next
End Using
End Using
End Using
End Sub
As I use Option Strict On, I had to make some minor modifications to your DrawText method.
Note how the line which is too long is truncated. Centred, but truncated. That is where you might want to use the Graphics.MeasureString Method (String, Font, SizeF, StringFormat) overload so that you have the possibility of it wrapping automatically. Which will of course mess up the calculation for the vertical centring.