Domanda

Come posso aggiungere una nuova riga nel testo di un'etichetta in WPF come la seguente?

<Label>Lorem 
  ipsum</Label>
È stato utile?

Soluzione

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

Devi usare TextBlock perché TextBlock accetta come figli una raccolta di oggetti Inline. Quindi stai dando all'elemento TextBlock tre elementi Inline: Run Text = & Quot; Lorem & Quot ;, LineBreak ed Run Text = & Quot; ipsum & Quot ;.

Non puoi fare quanto segue:

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

perché un'etichetta accetta un elemento figlio di contenuto.

Inoltre, non sono sicuro di quale sia il tuo caso d'uso, ma noti che ho inserito un TextBlock all'interno dell'elemento Label. È ripetitivo? Non proprio, a seconda delle tue necessità. Ecco un buon articolo sulle differenze tra i due elementi: Differenza tra Label e TextBlock

Altri suggerimenti

in WPF è possibile utilizzare il valore "&#10;" o "&#xA;"

Ad esempio:

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

(" 10 " è il numero ASCII per newline)

o

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

(" A " è il numero ASCII per newline in esadecimale)

Esempio, con un'etichetta attorno al bordo per mostrare vari

Nel fare questo nel ViewModel o nel Modello, ho scoperto che l'uso di Environment.NewLine ha il risultato più coerente, inclusa la localizzazione. Dovrebbe funzionare direttamente anche nella vista, ma non l'ho provato.

Esempio:

Nella vista

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

Nel ViewModel:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top