hai*_*yyu 5 c# gdi+ word-wrap winforms
我正在尝试创建一个Control,它基本上允许我在彼此之下绘制不同的字符串.但是,字符串的宽度可能不会大于控件的宽度.为了解决这个问题,我想将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);
Run Code Online (Sandbox Code Playgroud)
问题是如果someText被包装,第三行将在第一个文本上绘制文本,从而使得很难/不可能被阅读.
我正在寻找这个问题的解决方案,我发现了一些有趣的链接,但是包括使用for循环来测量每个角色的宽度等等.有没有更简单的方法呢?
你可以使用Graphics.MeasureString方法获取字符串的尺寸并相应地绘制下一个字符串吗?
SizeF size = g.MeasureString(someText, someFont, someRectangleF.Size.Width);
g.DrawString(someText, someFont, someBrush, new PointF(0, 0), someRectangleF);
g.DrawString(someMoreText, someFont, someBrush, new PointF(0, size.Height), someRectangleF);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5586 次 |
| 最近记录: |