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

标签 c# winforms graphics

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

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

我试过这种方法:

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/

相关文章:

c# - 在 C# 中保存相同类型的有序值对的最佳类型是什么?

.net - Winforms & TimeSpan - 哪个控件效果最好?

c# - Winforms 中可调整大小的文本框

c# - 我可以通过 Windows 窗体弹出帮助 "speech bubble"吗?

java - 在Java中使用Graphics时如何反转Y轴的极性?

java - 用 3 种颜色给三角形上色

c - 使用 MoveToEx 和 LineTo 为窗口制作边框

c# - 访问内部类型

c# - 后台工作人员中的暂停/恢复循环

c# - 在 C# 中使用 streamReader 类读取具有动态列数的文本文件