确定给定矩形高度的最大字体 (WinForms)

发布于 2024-08-06 07:47:00 字数 310 浏览 5 评论 0原文

这是 根据 Winforms/C# 中的文本量和字体大小确定标签大小

给定一个固定高度但可变宽度的矩形,是否有一种有效的方法来确定适合矩形(高度)的给定字体的最大尺寸,而不会丢失上升/下降的风险?

我目前正在考虑迭代使用 MeasureString() 来找到最佳字体大小,但想知道是否有更好的方法。

This is the inverse of Determine Label Size based upon amount of text and font size in Winforms/C#.

Given a rectangle of fixed height but variable width, is there an efficient way to determine the largest size of a given font that will fit in the rectangle (height-wise) without risk of losing ascenders/descenders?

I'm currently considering iterative use of MeasureString() to find the best font size but wonder if there's a better way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忆伤 2024-08-13 07:47:00

我从来没有找到比迭代使用 MeasureString 更好的方法。
您可以通过增量跳跃来优化。

WPF 有一些更好的文本大小选项,尽管这感觉就像在伤口上撒盐。

I've never found a better way to do it than using MeasureString iteratively.
You can optimise by jumping in increments.

WPF has some nicer text sizing options, though it feels like rubbing salt in the wound.

べ繥欢鉨o。 2024-08-13 07:47:00

你真的不需要迭代。由于总宽度也与字体大小成正比,因此您只需使用任何合理大小的字体测量字符串一次
之后,您可以计算所需的字体大小:

fontSizeUsedToMeasure*(RectangleWidth/MeasuredWidth)(*0.8 for a nicer fit)

You don't really need iterations. Since the total width is also proportional to the font size, you only have to measure the string once with any reasonable sized font.
Afterwards, you can calculate your required font size:

fontSizeUsedToMeasure*(RectangleWidth/MeasuredWidth)(*0.8 for a nicer fit)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文