gpt4 book ai didi

c# - 测量包裹的字符串

转载 作者:太空狗 更新时间:2023-10-30 00:43:58 24 4
gpt4 key购买 nike

我正在尝试创建一个基本上允许我在彼此下方绘制不同字符串的控件。但是,字符串的宽度不能大于控件的宽度。为了解决这个问题,我正在考虑将 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);

问题是,如果 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);

关于c# - 测量包裹的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9120555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com