我正在使用标签向用户显示进度。这种情况多次发生,部分用户定义的文本每次都会更改。
问题:我应该知道绘制的文本是否大于标签的大小。
我试过这种方法:
using (Graphics g = lbl.CreateGraphics()) {
SizeF size = g.MeasureString(lbl.Text, lbl.Font);
// Change size of label if too small
}
但它太慢了,每次更新调用时都会占用大量资源。
那么有没有办法找出绘制的文本何时大于标签?
编辑:
正如 Hans Passant 所说,AutoSize
会做到这一点。
不好意思,我没说Label下面的其他控件那时候得动。
最佳答案
看来没有别的办法了。
所以我必须使用上面的解决方案:
using (Graphics g = lbl.CreateGraphics()) {
SizeF size = g.MeasureString(lbl.Text, lbl.Font);
// Change size of label if too small
}
关于c# - 使标签大小适合绘制的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829355/