Try calling one of the overloads of MeasureString that takes an StringFormat parameter and pass it StringFormat.GenericTypographic. Here is some code that shows the same string and font giving different results depending upon the StringFormat parameter.
StringFormat sf = new StringFormat(StringFormat.GenericTypographic);
SizeF size = e.Graphics.MeasureString('this has some words', Font, 500, sf);
SizeF size1 = e.Graphics.MeasureString('this has some words', Font);
string s = string.Format('GenericTypographic={0:f2} GenericDefault={1:f2}', size.Width, size1.Width);
MessageBox.Show(s);
Share with