Centering text is easy with a single line of text:
textLeft = (Graphics.Width - Graphics.StringWidth(caption)) / 2
Then draw the string using textLeft as the x coordinate for the string in Graphics.DrawString.
However, there is no way (that I can see) to calculate the proper width of the string in Graphics.StringWidth(caption), if the text represented by caption will end up being wrapped in the Graphics Object.
Is there a way to calculate the effective StringWidth for a string that will be wrapped?