给定一个C# Winforms RichTextBox,我想知道一行上可以容纳多少个字符。我知道我的字体(等宽字符)和字号大小。
谢谢, 肖恩
给定一个C# Winforms RichTextBox,我想知道一行上可以容纳多少个字符。我知道我的字体(等宽字符)和字号大小。
谢谢, 肖恩
我注意到测量一个字符会添加一些额外的空间,这不足以表示一个字符的实际宽度。
private int CalculateMaxDescriptionLineLength()
{
Graphics g = _tb.CreateGraphics();
float twoCharW = g.MeasureString("aa", _tb.Font).Width;
float oneCharW = g.MeasureString("a", _tb.Font).Width;
return (int)((float)_tb.Width / (twoCharW - oneCharW));
}
static int GetWidthInChars(int widthInPixels, Font font, Graphics g)
{
return (int) (widthInPixels / g.MeasureString ("a", font).Width);
}
TextRenderer.MeasureText
。由于.NET2.0使用TextRenderer
(GDI)而不是Graphics
(GDI +),它们之间存在差异。 - Alexander Petrov