如何在C#中查找字符串的宽度(以像素为单位)

12

我想实现框架文字(使用Windows Forms),例如:

enter image description here

高度始终相同,因为我的字符串少于20个字符。 宽度怎么办? 有没有自动获取宽度的方法?


可能是重复问题:https://dev59.com/iGsz5IYBdhLWcg3wsaLN - default
可能是重复的问题,参考如何将字符串长度转换为像素单位? - Jim Fell
2个回答

17

使用 Graphics.MeasureString()

来自 MSDN:http://msdn.microsoft.com/zh-cn/library/dtkwfdky.aspx

private void MeasureStringMin(PaintEventArgs e)
{
    // Set up string. 
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Measure string.
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0));
}

12

如果您不想处理Paint事件处理程序,可以尝试使用TextRenderer类。它有一个静态方法,与上面答案中的MeasureString()方法完全相同。在这个类中,它被称为MeasureText


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接