[WPF] Comment préserver les espaces dans un Label ou un élément Run ?
J'ai récemment eu l'occasion d'aider un ami (celui-ci se reconnaitra
) qui me posait la question suivante:
"Comment faire en sorte de conserver les espaces dans un Label ? Car par défaut, ceux-ci sont trimmés..."
Après avoir fait quelques tests, voila la réponse que je lui ai donné. Comme c'est une question intéressante, j'en profite pour faire ce post sur mon blog: il est possible que cela soit utile à d'autres 
Par défaut, les espaces sont supprimés en début et en fin de chaîne de caractères. De plus, si vous insérez plusieurs espaces entre 2 mots, ceux-ci sont concaténés pour n'en faire qu'un seul et ainsi réduire la place occupée.
Si l'on souhaite, pour une raison ou une autre, conserver ces espaces, la technique est simple: il suffit d'utiliser xml:space="preserve":
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<Label> Label sans conservation des espaces !!!! </Label>
<TextBlock>
<Run xml:space="preserve"> Run avec conservation des espaces !!!! </Run>
</TextBlock>
<Label xml:space="preserve"> Label avec conservation des espaces !!!! </Label>
</StackPanel>
</Page>
Le résultat est sans appel:
C'est simple, cela n'a rien de spécifique à XAML/WPF mais tout simplement au XML. Car après tout, il ne faut pas oublier que le XAML est basé surle XML
A+
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :