使标签大小适合绘制文本

时间:2013-07-24 08:54:33

标签: c# winforms graphics

我正在使用Label向用户显示进度。这种情况多次发生,部分用户定义的文本每次都会发生变化。

问题:我应该知道绘制的文字是否大于标签尺寸。

我试过这种方法:

using (Graphics g = lbl.CreateGraphics()) {
    SizeF size = g.MeasureString(lbl.Text, lbl.Font);
    // Change size of label if too small
}

但它太慢并且在每次更新时调用都会占用大量资源。

那么有没有办法找出绘制的文本何时比标签大?

修改
正如Hans Passant所说,AutoSize会这样做 对不起,我没有说Label下面的其他控件必须移动。

1 个答案:

答案 0 :(得分:0)

似乎没有其他方法可以做到这一点 所以我必须使用上面的解决方案:

using (Graphics g = lbl.CreateGraphics()) {
    SizeF size = g.MeasureString(lbl.Text, lbl.Font);
    // Change size of label if too small
}