【问题标题】:C# label AutoSize adds paddingC# 标签 AutoSize 添加填充
【发布时间】:2010-09-02 18:15:47
【问题描述】:

我在 Windows.Form 上有一个标签。我将标签上的 AutoSize 属性设置为 True,我注意到当我这样做时,它会在右侧填充约 5px 的白色背景。我将 Padding 属性设置为 [0, 0, 0, 0]。有没有办法摆脱这个?

我想让标签的边界尽可能接近标签内的文本。

【问题讨论】:

    标签: c# winforms text label


    【解决方案1】:

    只使用内边距和边距是没有办法的。这是默认行为。

    在上面的Window 中,我将PaddingMargin 设置为[0,0,0,0]。那 5 个像素仍然存在。

    如果你设置FlatStyle = SystemAutoSize = False 你可以得到这个:

    在上面的Window 中,你不再有这 5 个像素了。

    【讨论】:

    • 关闭 AutoSize 会将标签大小设置为手动量。由于标签中的文本会发生变化,因此需要调整其大小。 AutoSize 属性为我做到了这一点。如果有办法模拟这个属性,那也是可以接受的答案。
    • FlatStyle = 系统,太棒了,我要死了,谢谢! +1
    • 您能否提供用于获取第二个窗口的代码?我不断得到第一个窗口..
    • FWIW,这对我不起作用,我一直得到第一个窗口
    【解决方案2】:

    好的,所以 FlastStyle = System;自动尺寸 = 假;然后设置一个属性来计算宽度,如下所示:

    public string LabelText
    {
        set
        {
            _label.Text = value;
            using (Graphics g = CreateGraphics()) {
                _label.Width = (int)g.MeasureString(_label.Text, _label.Font).Width;
            }
        }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 2017-04-24
      • 1970-01-01
      • 2021-09-15
      • 2015-10-25
      • 2013-06-14
      相关资源
      最近更新 更多