You can use Graphics.MeasureString method, that returns bounds of specified string on given system at runtime. So having that information in your hands you can also make your calculations.
In alternative you van use Piccolo framework, that have much more then that, and also works pretty well.