Como centralizar o texto de um rótulo no WPF?

111

Como centralizar o texto de um rótulo no WPF?


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

alansiqueira 27
fonte

Respostas:

211

use a propriedade HorizontalContentAlignment .

Amostra

<Label HorizontalContentAlignment="Center"/>
biju
fonte
@Alan, você pode atualizar sua pergunta com o XAML que contém esse rótulo, além de uma captura de tela de sua aparência? Porque essa propriedade deve funcionar ...
Dan J
5
@Alan Em sua pergunta atualizada, você está tentando definir 'HorizontalAlignment'. Tente definir 'HorizontalContentAlignment' conforme mencionado na minha resposta acima. Funcionará
biju
4
Conforme mencionado pelo usuário 1920925, isso funciona para rótulos apenas quando há uma única linha de texto. Para controlar o alinhamento, você pode usar um TextBlock em vez de um rótulo e definir o atributo TextAlignment para o que for necessário.
Paul Stegler
O WPF 3.5 não mostra esta propriedade, mas quando você apenas a digita, ela funciona. Obrigado.
strider
3
Se você tiver várias linhas de conteúdo, isso alinhará as bordas esquerdas de cada linha e, em seguida, centralizará o bloco inteiro. Se você quiser centralizar cada linha, use um TextBlock e defina TextAlignment="Center".
Tor Klingberg
7

A classe Control possui as propriedades HorizontalContentAlignment e VerticalContentAlignment. Essas propriedades determinam como o conteúdo de um controle preenche o espaço dentro do controle.
Defina HorizontalContentAlignment e VerticalContentAlignment como Center.

Akshay J
fonte
3
@Alan, você usou HorizontalAlignment em seu código. Use HorizontalContentAlignment para obter o comportamento desejado.
Akshay J de
1

Você deve usar HorizontalContentAlignment = "Center" e! Largura = "Auto".

Kombinator
fonte
0

Amostra:

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