【发布时间】:2010-12-03 04:00:07
【问题描述】:
这是Determine Label Size based upon amount of text and font size in Winforms/C#的倒数。
给定一个高度固定但宽度可变的矩形,是否有一种有效的方法来确定适合矩形(高度)的给定字体的最大尺寸,而不会有丢失上升/下降的风险?
我目前正在考虑迭代使用 MeasureString() 来找到最佳字体大小,但想知道是否有更好的方法。
【问题讨论】:
这是Determine Label Size based upon amount of text and font size in Winforms/C#的倒数。
给定一个高度固定但宽度可变的矩形,是否有一种有效的方法来确定适合矩形(高度)的给定字体的最大尺寸,而不会有丢失上升/下降的风险?
我目前正在考虑迭代使用 MeasureString() 来找到最佳字体大小,但想知道是否有更好的方法。
【问题讨论】:
我从来没有找到比迭代使用 MeasureString 更好的方法。 您可以通过增量跳跃来优化。
WPF 有一些更好的文本大小选项,虽然感觉就像在伤口上撒盐。
【讨论】:
您实际上并不需要迭代。由于总宽度也与字体大小成正比,因此您只需使用任何合理大小的字体测量字符串一次。 之后,您可以计算所需的字体大小:
fontSizeUsedToMeasure*(RectangleWidth/MeasuredWidth)(*0.8 for a nicer fit)
【讨论】: