Hallo,
ich konnte nirgends finden, dass man einem Label kein Padding geben kann, aber in meinem Windows Form wird das in den Properties eingestellte Padding nicht angenommen, also z.B. padding left 20 oder padding left 0 macht keinen Unterschied.
Weiß jemand Rat?
Danke.
Hallo morphious,
hast du die Eigenschaft AutoSize
gesetzt?
Kann es gerade nicht testen, es kann aber sein, dass dann das Padding ignoriert wird.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Schau mal in der :rtfm: MSDN nach unter bspw. bei der Control.Padding-Eigenschaft.
Alle Steuerelemente, die GetPreferredSize implementieren, werden um den in Padding angegebenen Wert vergrößert, wenn AutoSize auf true festgelegt ist.
Danke für die schnelle Antwort, aber AutoSize steht auf False ...
Wo der Fehler liegt, kannst du dir dann denken.
mfg
SeeQuark
@ SeeQuark: Danke, aber da tauchten zwei Probleme auf:
Hat man noch eine andere Möglichkeiten, die Schrift im label bei Linksanschlag ein paar Pixel vom Rand weg zu bekommen? Außer natürlich die labels ohne Hintergrund erstellen und ein farbiges panel drunter legen ...
Danke, Gruß
das linke [wird] padding rechts neben die Schrift gesetzt und das rechte padding [wird] auch rechts am Rand angewendet, was dann also bei padding 20;0;20;0 ein padding von 40 ab dem rechten Rand ergibt
Das ist irgendwie unlogisch.
Bei mir funktioniert das so wie es soll, dass das Label links und rechts je einen Rand von 20 hat.
Vielleicht hast du diese Werte irgendwo manipuliert oder es ist ein Bug eingeschlichen, was ich aber nicht glaube.
Hat man noch eine andere Möglichkeiten, die Schrift im label bei Linksanschlag ein paar Pixel vom Rand weg zu bekommen?
Einen Width-Wert zuweisen und TextAlign
auf
MiddleCenter
setzen.
Ich fände das mit dem Padding aber besser.
Probiere mal diesen Code aus:
Form testForm = new Form();
Label label = new Label();
label.BackColor = SystemColors.Highlight;
label.BorderStyle = BorderStyle.FixedSingle;
label.Padding = new Padding(20, 0, 20, 0);
label.AutoSize = true;
label.Text = "TestLabel";
testForm.SizeChanged += (s, e) => label.Location = new Point(
(testForm.ClientSize.Width - label.Size.Width) / 2,
(testForm.ClientSize.Height - label.Size.Height) / 2);
testForm.Controls.Add(label);
testForm.Show();
testForm.Size = new Size(100, 100);
Sollte es da nicht funktionieren, ist das irgend ein Bug.
Wenn schon, hast du einen Fehler im Code.
mfg
SeeQuark
Danke für deine Tipps. Jetzt habe ich es heraus gefunden: Es lag einfach nur daran, dass der "Flat Style" auf "System" und nicht auf "Standard" stand.