Question

Comment puis-je ajouter une nouvelle ligne dans le texte d'une étiquette dans WPF telle que celle-ci?

<Label>Lorem 
  ipsum</Label>
Était-ce utile?

La solution

<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>

Vous devez utiliser TextBlock car TextBlock accepte en tant qu'enfants une collection d'objets Inline. Donc, vous donnez à l'élément TextBlock trois éléments Inline: Run Text = & "Lorem &", LineBreak et Run Text = & "Ipsum &";

Vous ne pouvez pas effectuer les opérations suivantes:

<Label>Lorem<LineBreak/>ipsum</Label>`

car une étiquette accepte un élément enfant de contenu.

De plus, vous ne savez pas exactement quel est votre cas d'utilisation, mais remarquez que j'ai placé un TextBlock dans votre élément Label. Est-ce répétitif? Pas vraiment, selon vos besoins. Voici un bon article sur les différences entre les deux éléments: Différence entre Label et TextBlock

Autres conseils

dans WPF, vous pouvez utiliser la valeur "&#10;" ou "&#xA;"

Par exemple:

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

(& "10 &" est le numéro ASCII de la nouvelle ligne)

ou

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

(& "A &" est le numéro ASCII de la nouvelle ligne au format hexadécimal)

Exemple, avec une étiquette entourant la bordure pour afficher le cadre

En effectuant cette opération dans le modèle ou le modèle, j'ai constaté que l'utilisation de Environment.NewLine produisait le résultat le plus cohérent, y compris la localisation. Cela devrait également fonctionner directement dans la vue, mais je n’ai pas testé cela.

Exemple:

Dans la vue

<Label Content="{Binding SomeStringObject.ParameterName}" />

Dans le ViewModel:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top