Gérer manuellement les sauts de ligne dans un textblock est une problématique qui peut revenir souvent lorsque que l’on commence à développer des UI XAML.
Si le texte est bindé, à ce moment là aucun soucis, mais si le texte est en dur dans le xaml, il est de base impossible de le faire.
Par exemple si on écrit :
<TextBlock> <TextBlock.Text> Bonjour toi </TextBlock.Text> </TextBlock>
De même
<TextBlock Text="Bonjour\nToi" />
n’est pas plus concluant.
Une possibilité
BonjourToi
Autant le dire tout de suite, je suis vraiment pas fan de cette solution, car un peu bordélique, prends de la place pour pas grand chose et surtout pas Blend-compliant, en effet, dans les propriétés de Blend, seul « Bonjour » pourra être visible parfois. Enfin gros point négatif, un espace sera rajouté après chaque saut de ligne si vous formattez votre XAML :
Bonjour Toi
Vous aurez :
Sauf si vous demandez explicitement d’ignorer les espaces, mais vous pourrez rencontrer d’autres soucis.
Enfin un saut de ligne n’est pas un élément visuel d’interface, l’élément XAML LineBreak dénote donc avec le reste de la structure XAML.
(Et accessoirement, pas cool pour mes outils perso d’analyse de code, mais ça c’est mon problème
)
L’astuce !
C’est un peu barbare mais ça fonctionne :
<TextBlock Text="Bonjour Toi" />
affiche bien
Pourquoi ?
Décomposons le code
& et ; délimite en xml les caractères spéciaux, comme par exemple & pour le caractère « Et commercial » ou pour l’espace.
« # » indique que l’on va indiquer un nombre correspondant au code du caractère.
« 10″ est le nombre en question.
Donc pour résumer, via ce code, on ajoute le caractère ayant le code 10 soit… le saut de ligne.
Si vous êtes un vrai geek comme moi, vous pouvez vous compliquer un peu la vie en utilisant le code suivant :


Qui est exactement le même caractère, que l’on adresse cette fois en hexadécimal.
Attention à Blend
Une petite note, si vous écrivez le code dans les propriétés de blend par exemple, ce dernier va remplacer automatiquement le caractère & par & (vu que c’est un caractère spécial), le saut de ligne ne se fera pas et sera visible dans votre textbox, la seule solution est donc d’éditer directement le XAML.























