TextRenderer使用GDI呈现文本,而
Graphics使用GDI +。两者使用略微不同的方法来布置文本,因此大小不同。
您应该使用哪一个取决于最终将用于实际绘制文本的内容。如果要使用GDI
+进行绘制
Graphics.DrawString,请使用进行测量
Graphics.MeasureString。如果使用GDI进行绘图,请使用进行
TextRenderer.DrawText测量
TextRenderer.MeasureText。
如果文本将显示在Windows Forms控件内,则使用
TextRendererif
UseCompatibleTextRendering设置为
false(默认)。
在问题的各行之间阅读,您似乎正在使用,
TextRenderer因为事件
Graphics外没有实例
Paint。如果是这样,您可以自己创建一个进行测量:
using( Graphics g = someControl.CreateGraphics() ){ SizeF size = g.MeasureString("some text", SystemFonts.DefaultFont);}如果您无权创建图形实例的控件,则可以使用该控件为屏幕创建一个实例,该控件可以很好地用于测量目的。
using( Graphics g = Graphics.FromHwnd(IntPtr.Zero) ){ SizeF size = g.MeasureString("some text", SystemFonts.DefaultFont);}


