Wie zentriere ich einen Beschriftungstext in WPF?

111

Wie zentriere ich einen Beschriftungstext in WPF?


Label HorizontalAlignment="Center" Content="What?" FontSize="25" FontWeight="Bold" Canvas.Top="5"

alansiqueira27
quelle

Antworten:

211

Verwenden Sie die HorizontalContentAlignment- Eigenschaft.

Stichprobe

<Label HorizontalContentAlignment="Center"/>
Biju
quelle
@Alan können Sie Ihre Frage mit der XAML aktualisieren, die dieses Label enthält, sowie einen Screenshot davon, wie dies aussieht? Weil diese Eigenschaft funktionieren sollte ...
Dan J
5
@ Alan In Ihrer aktualisierten Frage versuchen Sie, 'HorizontalAlignment' festzulegen. Versuchen Sie, 'HorizontalContentAlignment' wie in meiner Antwort oben erwähnt einzustellen. Es wird funktionieren
Biju
4
Wie von user1920925 erwähnt, funktioniert dies nur für Beschriftungen, wenn eine einzelne Textzeile vorhanden ist. Um die Ausrichtung zu steuern, können Sie einen TextBlock anstelle einer Beschriftung verwenden und das TextAlignment-Attribut auf die gewünschten Werte setzen.
Paul Stegler
WPF 3.5 zeigt diese Eigenschaft nicht an, aber wenn Sie sie nur eingeben, funktioniert sie. Vielen Dank.
Strider
3
Wenn Sie mehrere Inhaltszeilen haben, werden die linken Ränder jeder Zeile ausgerichtet und der gesamte Block zentriert. Wenn Sie jede Zeile zentrieren möchten, verwenden Sie stattdessen einen TextBlock und legen Sie fest TextAlignment="Center".
Tor Klingberg
7

Die Control-Klasse verfügt über die Eigenschaften HorizontalContentAlignment und VerticalContentAlignment. Diese Eigenschaften bestimmen, wie der Inhalt eines Steuerelements den Bereich innerhalb des Steuerelements ausfüllt.
Setzen Sie HorizontalContentAlignment und VerticalContentAlignment auf Center.

Akshay J.
quelle
3
@Alan, Sie haben HorizontalAlignment in Ihrem Code verwendet. Verwenden Sie HorizontalContentAlignment, um das gewünschte Verhalten zu erhalten.
Akshay J
1

Sie müssen HorizontalContentAlignment = "Center" und! Breite = "Auto".

Kombinator
quelle
0

Stichprobe:

Label label = new Label();
label.HorizontalContentAlignment = HorizontalAlignment.Center;
Newred
quelle