【发布时间】:2010-09-02 18:15:47
【问题描述】:
我在 Windows.Form 上有一个标签。我将标签上的 AutoSize 属性设置为 True,我注意到当我这样做时,它会在右侧填充约 5px 的白色背景。我将 Padding 属性设置为 [0, 0, 0, 0]。有没有办法摆脱这个?
我想让标签的边界尽可能接近标签内的文本。
【问题讨论】:
我在 Windows.Form 上有一个标签。我将标签上的 AutoSize 属性设置为 True,我注意到当我这样做时,它会在右侧填充约 5px 的白色背景。我将 Padding 属性设置为 [0, 0, 0, 0]。有没有办法摆脱这个?
我想让标签的边界尽可能接近标签内的文本。
【问题讨论】:
只使用内边距和边距是没有办法的。这是默认行为。
在上面的Window 中,我将Padding 和Margin 设置为[0,0,0,0]。那 5 个像素仍然存在。
如果你设置FlatStyle = System 和AutoSize = False 你可以得到这个:
在上面的Window 中,你不再有这 5 个像素了。
【讨论】:
好的,所以 FlastStyle = System;自动尺寸 = 假;然后设置一个属性来计算宽度,如下所示:
public string LabelText
{
set
{
_label.Text = value;
using (Graphics g = CreateGraphics()) {
_label.Width = (int)g.MeasureString(_label.Text, _label.Font).Width;
}
}
}
【讨论】: