2009-08-01 8 views
18

Peut-être que je n'utilise pas les bons mots clés, mais toutes mes recherches arrivent à vide. Comment forcer un saut de ligne?Comment forcer un saut de ligne entre deux mots dans une étiquette déclarée par XAML?

Je peux vous dire qu'aucun des travaux suivants:

<Label 
    Content="Line&br;Break:" /> 

<Label 
    Content="Line<br />Break:" /> 

<Label 
    Content="Line 
    Break:" /> 

<Label 
    Content="Line\nBreak:" /> 

Quelqu'un peut-il partager ce secret bien gardé?

Merci.


EDIT:

Ok, never mind. Je enfin l'ai trouvé.

<Label 
    Content="Line&#x0a;Break:" /> 

Certainement pas facile à deviner!


EDIT 2:

D'accord, et maintenant pour obtenir le texte à être justifié à droite, je suis allé avec ceci:

<Label> 
    <TextBlock 
     TextAlignment="Right" 
     Text="Line&#x0a;Break:" /> 
</Label> 

Merci à Julien pour l'idée d'utiliser un TextBlock.

Répondre

23

Si vous avez seulement besoin d'afficher du texte, vous pouvez utiliser un TextBlock au lieu d'un Label:

<TextBlock> 
    Line<LineBreak/>Break: 
</TextBlock> 

Si vous avez vraiment besoin d'un Label (par exemple, vous devez répondre à un événement de clic), vous pouvez envelopper le code ci-dessus à l'intérieur d'un Label.

+0

Je n'en ai pas besoin pour répondre à un événement click, mais j'en ai besoin pour griser lorsqu'il est désactivé (ce que je pense TextBlock ne fera pas sans code/balisage supplémentaire). Cependant, j'ai maintenant un problème en essayant de justifier correctement le texte de mon étiquette, donc je pourrais avoir besoin d'utiliser autre chose. HorizontalAlignment = "Right" et HorizontalContentAlignment = "Right" n'ont aucun effet. – devuxer

+0

Vous pouvez définir la propriété TextAlignment du TextBlock sur Droite. En ce qui concerne le gris, cela va nécessiter un balisage supplémentaire. –

+0

Merci, Julien. J'ai été capable de résoudre en mettant le TextBlock dans une étiquette (voir mes modifications ci-dessus). – devuxer

0

Je ferais ceci:

<StackPanel> 
    <Label>First line</Label> 
    <Label>Second line</Label> 
</StackPanel> 

Si la mise en forme devient vraiment impliqué, j'utiliser FlowDocumentScrollViewer.

+1

Ce n'est pas la manière prévue.Parce qu'ils sont des contrôles séparés, vous devez faire face à des marges, etc ... (il agit plus comme un paragraphe) Le TextBlock avec LineBreaks est beaucoup plus propre! – Jowen

2

Si vous voulez une nouvelle ligne dans une étiquette:

<Label Content="Lorem &#10;ipsum" /> 

("10" est le numéro de ascii pour newline)

ou

<Label Content="Lorem &#xA;ipsum" /> 

("A" est le numéro d'ascii pour newline en hexadécimal)

Questions connexes