使标签大小适合绘制的文本

本文关键字:绘制 文本 标签 | 更新日期: 2023-09-27 18:24:43

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

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

我尝试过这种方法:

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

但是它太慢了,每次更新调用时都会占用大量资源。

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

编辑:
正如Hans Passant所说,AutoSize将做到这一点。
对不起,我没有说标签下面的其他控件必须移动。

使标签大小适合绘制的文本

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

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