C# label AutoSize добавляет заполнение

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

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

2 ответов


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

alt text

выше Window Я поставил Padding и Margin to [0,0,0,0]. Эти 5 пикселей все еще там.

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

alt text

выше Window У вас больше нет этих 5 пикселей.


Ok, поэтому 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;
        }
    }

}