我需要在 Winforms 的标签控件中测量字符串的确切像素大小。我尝试使用 TextRenderer.MeasureText(Text, Font) 和 graphics.MeasureString(Text, Font) 但没有得到准确的像素宽度。
检查确切的像素宽度时,它是 90,但 TextRenderer 和 Graphics 给出不同的值。谁可以帮我这个事。
我需要在 Winforms 的标签控件中测量字符串的确切像素大小。我尝试使用 TextRenderer.MeasureText(Text, Font) 和 graphics.MeasureString(Text, Font) 但没有得到准确的像素宽度。
检查确切的像素宽度时,它是 90,但 TextRenderer 和 Graphics 给出不同的值。谁可以帮我这个事。
请注意TextRendered.MeasureText文档中写的内容(强调我的):
返回值
类型:System.Drawing.Size
使用指定字体在单行上绘制的文本的大小(以像素为单位)。您可以使用采用 TextFormatFlags 参数的 DrawText 重载之一来操纵文本的绘制方式。例如,TextRenderer 的默认行为是向绘制文本的边界矩形添加填充以适应悬垂的字形。如果您需要在没有这些额外空格的情况下绘制一行文本,您应该使用带有 Size 和 TextFormatFlags 参数的 DrawText 和 MeasureText 版本。有关示例,请参阅 MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)。
另外,请注意Graphics.MeasureString文档(再次强调我的):
备注
MeasureString 方法设计用于单个字符串,并在字符串前后包含少量额外空间以允许悬垂字形。