После завершения следующего кода значения переменных «result1» и «result2» (измеренная ширина строки) одинаковы, несмотря на то, что «font1» является регулярным, а «font2» - жирным. Интересно, что эта ошибка появляется для шрифтов «Times New Roman» и «Arial». Например, для шрифта «Calibri» возвращаемые значения верны, значение переменной «result2» больше, чем значение переменной «result1». Почему это происходит?
using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromHwnd(IntPtr.Zero))
{
graphics.PageUnit = System.Drawing.GraphicsUnit.Pixel;
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
System.Drawing.Font font1 = new System.Drawing.Font("Arial", 10.0f, System.Drawing.FontStyle.Regular);
System.Drawing.Font font2 = new System.Drawing.Font("Arial", 10.0f, System.Drawing.FontStyle.Bold);
float result1 = graphics.MeasureString("WWW", font1, int.MaxValue, System.Drawing.StringFormat.GenericTypographic).Width;
float result2 = graphics.MeasureString("WWW", font2, int.MaxValue, System.Drawing.StringFormat.GenericTypographic).Width;
}