日期:2014-05-19  浏览次数:21333 次

c#怎么精确测量画出来得string的象素长度?
我用Graphics.MeasureString()测出来的长度误差太大了,象str= "asdhfjashidfasdfkhsdiau ";画出来误差大约有20个象素。有什么方法可以很精确的得到画出来的string象素长度

------解决方案--------------------
我觉得实现不了,除非你得到每个字母的长度再存入一个常量.
以前做过类似的,我只是用平均值.就是假设一个字母的宽度是8PX.
------解决方案--------------------
下面的代码示例说明如何使用 MeasureText 方法。若要运行此示例,请将该代码粘贴到一个 Windows 窗体中,并从该窗体的 Paint 事件处理程序中调用 MeasureText1 ,将 e 作为 PaintEventArgs 传递。

private void MeasureText1(PaintEventArgs e)
{
String text1 = "Measure this text ";
Font arialBold = new Font( "Arial ", 12.0F);
Size textSize = TextRenderer.MeasureText(text1, arialBold);
TextRenderer.DrawText(e.Graphics, text1, arialBold,
new Rectangle(new Point(10, 10), textSize), Color.Red);
}
------解决方案--------------------
Graphics.MeasureString()
这个方法一直是我画图使用的
没发现那么大的误差

TextRenderer.MesureText是2.0新增的~~~~