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;
4

2 回答 2

1

您可以使用FontHeight属性来更改字体的高度。这可以完成这项工作。

MSDN:

获取或设置控件字体的高度。... FontHeight 属性不应设置为控件的 Font.Height 值以外的任何值,或者 -1。将 FontHeight 设置为 -1 具有清除缓存的高度值的效果,下次重新计算该值属性被引用。

于 2013-01-14T08:41:51.120 回答
0

如果将 Label.AutoSize 设置为 false,则必须以编程方式设置标签的高度。您不能开始使用 Label.Height 来确定字体的大小,因为 Label.Height 将是它的默认值(类似于 23)。这与从数据库中读取的高度没有对应关系。

您用于指定标签高度的数据库中的字段到底是什么?它在什么单位?您在发布的代码中没有使用任何数据库字段...

于 2013-01-14T08:57:35.680 回答