2009-10-01 87 views
4

這是Determine Label Size based upon amount of text and font size in Winforms/C#的倒數。確定給定矩形高度的最大字體(WinForms)

給定一個高度固定但寬度可變的矩形,是否有一種有效的方法可以確定一個給定字體的最大尺寸,這個尺寸將適合矩形(高度方向),而不會丟失上升/下降的風險?

我目前正在考慮迭代使用MeasureString()來查找最佳字體大小,但不知道是否有更好的方法。

回答

2

我從來沒有找到比迭代使用MeasureString更好的方法。 您可以通過跳躍進行優化。

WPF有一些更好的文字大小選項,雖然它感覺像在傷口上擦鹽。

+1

我跟這個一起工作,它工作得很好。是的,目標觀衆對.NET版本的更新速度太慢,太糟糕了...... – 2009-10-02 13:21:36

2

你並不需要迭代。由於總寬度也與字體大小成比例,因此您只需使用任何合理大小的字體測量字符串一次。 然後,你可以計算出你所需要的字體大小:

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