2013-01-14 79 views
0

在我的項目中,我需要在運行時創建一些標籤。這些具有不同的高度,取決於數據庫的一個字段。我需要在標籤中編寫一些文本,但如果標籤的高度很小,則需要根據標籤高度調整字體的大小。設置字體高度

我試過這個:

Label lbl = new Label(); 
lbl.AutoSize = false; 
lbl.Font = new System.Drawing.Font(lbl.Font.FontFamily, Convert.ToSingle(lbl.Height/2)); 
lbl.TextAlign = ContentAlignment.MiddleCenter; 
+1

也許不是確切的重複,但看看這個問題:http://stackoverflow.com/questions/2628725/autofit-label-font-size –

回答

1

可以使用FontHeight屬性來改變字體的高度。這可以完成這項工作。

MSDN:

獲取或設置控制的字體的高度。 ... FontHeight屬性不應設置爲 控件的Font.Height值或-1之外的任何值。將FontHeight設置爲-1具有清除緩存高度值的 效果,值爲 在下次引用該屬性時重新計算。

0

如果將Label.AutoSize設置爲false,則必須以編程方式設置標籤的高度。你不能使用Label.Height來確定字體的大小,因爲Label.Height是它的默認值(類似於23)。這與從數據庫讀取的高度沒有對應關係。

數據庫中用來指定標籤高度的字段究竟是什麼?它的單位是什麼?你沒有在你發佈的代碼中使用任何數據庫字段...

+0

從數據庫中讀取的高度是以像素爲單位的,沒有數據庫字段的原因並不重要,結果就像lbl.Height = 23; – ghiboz