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