W WinForms
używam a Label
do wyświetlania różnych komunikatów, takich jak sukces, porażka itp.
Chciałbym wyśrodkować tę etykietę w środkowej formie. Potrzebuję rozwiązania, które utrzyma go w centrum, niezależnie od tego, czy na etykiecie jest tylko jedno słowo, czy całe zdanie.
Control.Dock
właściwości ( msdn.microsoft.com/en-us/library/… ) można zadokować (przykleić) kontrolkę do określonej strony kontenera. Na przykładLeft
,Top
,Right
lubBottom
.Fill
informuje układ sterujący, aby zajął całe dostępne miejsce w kontenerze.Dock
ustawieniem.Dock
ustawienie było niepotrzebne. ZmianaAutoSize
właściwości nadaje etykiecie obwiednię, której rozmiar można ręcznie dostosować.Drobna dodatkowa zawartość do ustawiania programowego:
Styl dokowania i wyrównanie zawartości mogą różnić się od Twoich potrzeb. Na przykład dla prostej etykiety w formularzu wpf używam DockStyle.None.
źródło
Osiągniesz to ustawiając właściwość Anchor: None.
źródło
Jeśli nie chcesz zadokować etykiety w całym dostępnym obszarze, po prostu ustaw zdarzenie SizeChanged zamiast TextChanged. Zmiana każdej litery spowoduje zmianę właściwości szerokości etykiety, a także jej tekstu, gdy właściwość automatycznego rozmiaru jest ustawiona na True. Tak więc, przy okazji, możesz użyć dowolnej formuły, aby zachować wyśrodkowanie etykiety w formie.
źródło
Zaakceptowana odpowiedź nie zadziałała dla mnie z dwóch powodów:
BackColor
tak ustawiony, ustawieniaAutoSize = false
iDock = Fill
powoduje, że kolor tła, aby wypełnić cały formularzAutoSize
ustawić na fałsz, ponieważ tekst mojej etykiety był dynamicznyZamiast tego po prostu użyłem szerokości formularza i szerokości etykiety do obliczenia lewego przesunięcia:
źródło
Chciałem zrobić coś podobnego, ale na formularzu z obrazem w tle stwierdziłem, że kiedy tekst na etykiecie zmienił się, przemalowania były oczywiste tą metodą, więc zrobiłem co następuje: * Ustaw etykietę AutoSize na true i TextAlign na MiddleCenter
Następnie za każdym razem, gdy tekst się zmieniał (mój był robiony za pomocą timera), wywołałem następującą metodę:
I ustaw właściwość Location etykiety na tę zwracaną wartość. Zapewniło to, że etykieta zawsze znajdowała się w środku formularza, gdy tekst się zmieniał, a przemalowanie w formie pełnoekranowej nie było oczywiste.
źródło
Możesz wypróbować następujący fragment kodu:
To naprawdę centrum
źródło