我正在尝试创建一个控件,基本上允许我在彼此之下绘制不同的字符串。但是,这些字符串的宽度可能不大于控件的宽度。为了解决这个问题,我考虑将一个RectangleF对象传递给Graphics.DrawString方法。这会将超过传递矩形宽度的字符串包装起来。虽然这确实解决了如果字符串太大而无法看到整个字符串的问题,但还有另一个问题。如果我要尝试这样做
Graphics g = e.Graphics; // Paint event
g.DrawString(someText, someFont, someBrush, new PointF(0, 0), someRectangleF);
g.DrawString(someMoreText, someFont, someBrush, new PointF(0, 12), someRectangleF);
问题在于,如果一些文本被换行了,第三行的文字将会覆盖第一行的文字,从而使其难以/不可能读取。
我正在寻找解决这个问题的方法,我找到了一些有趣的链接,但是它们包括使用for循环来测量每个字符的宽度等操作。是否有更简单的方法?