2

我正在使用标签向用户显示进度。这会发生很多次,并且部分用户定义的文本每次都会更改。

问题:我应该知道绘制的文本是否大于标签的大小。

我尝试了这种方法:

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

但是在每次更新时调用它太慢并且使用大量资源。

那么有没有办法找出绘制的文本何时大于Label?

编辑:
正如 Hans Passant 所说,AutoSize会这样做。
抱歉,我没有说 Label 下面的其他控件必须移动。

4

1 回答 1

0

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

using (Graphics g = lbl.CreateGraphics()) {
    SizeF size = g.MeasureString(lbl.Text, lbl.Font);
    // Change size of label if too small
}
于 2013-08-05T08:15:37.727 回答