Graphics主要用于绘画,使用GDI+
控件自身绘画使用GDI,他与GDI+的结果有误差
所以如果使用
var g = label.CreateGraphics();
var f = label.Font;
var size = g.MeasureString(label.Text, f);
而实际上控件的长度应该使用下面的函数测量才准确:
var f = label.Font;
var size = TextRenderer.MeasureText(label.Text, f);
上述两端代码得到的size是有误差的。
如果我们要重绘,或者测试控件,应该使用第二种方法