C # label AutoSize добавляет отступы - PullRequest
7 голосов
/ 02 сентября 2010

У меня есть ярлык на Windows.Form.Я установил для свойства AutoSize метки значение True и заметил, что когда я это делаю, он дополняет правую сторону белым фоном на ~ 5px.У меня есть свойство Padding, установленное на [0, 0, 0, 0].Есть ли способ избавиться от этого?

Я бы хотел, чтобы границы метки были как можно ближе к тексту внутри метки.

Ответы [ 2 ]

11 голосов
/ 02 сентября 2010

Нет способа, когда вы используете только отступы и поля.Это поведение по умолчанию.

alt text

В приведенном выше Window я установил Padding и Margin на [0,0,0,0].Эти 5 пикселей все еще там.

Если вы установите FlatStyle = System и AutoSize = False, вы можете получить это:

alt text

В приведенном выше Windowне имеют эти 5 пикселей больше.

1 голос
/ 22 августа 2012

Хорошо, значит FlastStyle = System; AutoSize = false; а затем установите свойство, которое будет вычислять ширину, как это:

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

}

...