public static float MeasureString(string s, SupportedFonts f, float size, FontStyle style) { byte[] data; int dataSize; float factor = 1; if ((style & FontStyle.Italic) != 0) { factor *= 1.2f; } if ((style & FontStyle.Bold) != 0) { factor *= 1.2f; } if (f == SupportedFonts.TimesNewRoman) { data = TimesNewRoman; dataSize = 11; } else if (f == SupportedFonts.Arial) { data = Arial11Pt; dataSize = 11; } else { data = new byte[] { 8 }; dataSize = 11; } var stringSize = 0f; for (int i = 0; i < s.Length; i++) { var code = Math.Min(data.Length - 1, s[i] - ControlChars); if (code >= 0) { stringSize += ((data[code] * size) / dataSize); } } return(stringSize * factor); }
public static float MeasureString(string s, SupportedFonts f, float size, FontStyle style) { byte[] data; int dataSize; float factor = 1; if ((style & FontStyle.Italic) != 0) { factor *= 1.2f; } if ((style & FontStyle.Bold) != 0) { factor *= 1.2f; } if (f == SupportedFonts.TimesNewRoman) { data = TimesNewRoman; dataSize = 11; } else if (f == SupportedFonts.Arial) { data = Arial11Pt; dataSize = 11; } else { data = new byte[] { 8 }; dataSize = 11; } var stringSize = 0f; for (int i = 0; i < s.Length; i++) { var code = Math.Min(data.Length - 1, s[i] - ControlChars); if (code >= 0) { stringSize += ((data[code] * size) / dataSize); } } return stringSize * factor; }