Reputation: 4278
I have a Label on a Windows.Form. I set the AutoSize property on the label to True and I noticed that when I do that, it pads the right hand side with ~5px of white background. I have the Padding property set to [0, 0, 0, 0]. Is there a way to get rid of this?
I would like to get the bounds of the label as close as possible to the text within the label.
Upvotes: 8
Views: 5596
Reputation: 8837
Ok, so FlastStyle = System; AutoSize = false; and then set up a property that will calculate the width like this:
public string LabelText
{
set
{
_label.Text = value;
using (Graphics g = CreateGraphics()) {
_label.Width = (int)g.MeasureString(_label.Text, _label.Font).Width;
}
}
}
Upvotes: 1
Reputation: 102378
There's no way when you use only padding and margin. That's the default behavior.
In the above Window
I've set the Padding
and Margin
to [0,0,0,0]
. Those 5 pixels are still there.
If you set FlatStyle = System
and AutoSize = False
you can get this:
In the above Window
you don't have those 5 pixels anymore.
Upvotes: 14