Pregunta Newline en una etiqueta WPF?


¿Cómo puedo agregar una nueva línea en el texto de una etiqueta en WPF como la siguiente?

<Label>Lorem 
  ipsum</Label>

73
2018-01-27 15:17


origen


Respuestas:


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

Necesita utilizar TextBlock porque TextBlock acepta como elementos secundarios una colección de objetos Inline. Por lo tanto, le está dando al elemento TextBlock tres elementos en línea: ejecutar texto = "Lorem", LineBreak y ejecutar texto = "ipsum".

No puedes hacer lo siguiente:

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

porque una etiqueta acepta un elemento secundario de contenido.

Además, no estoy seguro de cuál es su caso de uso, pero tenga en cuenta que coloqué un TextBlock dentro de su elemento Label. ¿Es repetitivo? No realmente, dependiendo de tu necesidad. Aquí hay un buen artículo sobre las diferencias entre los dos elementos: Diferencia entre Label y TextBlock


107
2018-01-27 15:20



en WPF puedes usar el valor "&#10;" o "&#xA;"

Por ejemplo:

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

("10" es el número ASCII para nueva línea)

o

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

("A" es el número ASCII para nueva línea en hex)

Example, with a border arround label to show boundry


81
2017-10-01 17:08



Al hacer esto en ViewModel o Model, he encontrado que usar Environment.NewLine tiene el resultado más consistente, incluida la localización. También debería funcionar directamente en la Vista, pero no lo he probado.

Ejemplo:

En la vista

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

En ViewModel:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";

4
2018-02-01 09:49