¿Nueva línea en una etiqueta WPF?
Pregunta
¿Cómo puedo agregar una nueva línea en el texto de una etiqueta en WPF como la siguiente?
<Label>Lorem
ipsum</Label>
Solución
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>
Debe usar TextBlock porque TextBlock acepta como elementos secundarios una colección de objetos en línea. Entonces le está dando al elemento TextBlock tres elementos en línea: Ejecutar texto = & Quot; Lorem & Quot ;, LineBreak, y Ejecutar texto = & Quot; ipsum & Quot ;.
No puede hacer lo siguiente:
<Label>Lorem<LineBreak/>ipsum</Label>`
porque una etiqueta acepta un elemento secundario de contenido.
Además, no estoy seguro exactamente cuál es su caso de uso, pero observe que coloqué un TextBlock dentro de su elemento Label. ¿Es repetitivo? En realidad no, dependiendo de tu necesidad. Aquí hay un buen artículo sobre las diferencias entre los dos elementos: Diferencia entre Label y TextBlock
Otros consejos
en WPF puede usar el valor " "
o "
"
Por ejemplo:
<Label Content="Lorem ipsum" />
(" 10 " es el número ASCII para nueva línea)
o
<Label Content="Lorem
ipsum" />
(" A " es el número ASCII para nueva línea en hexadecimal)
Al hacer esto en ViewModel o Model, descubrí 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 el modelo de vista:
SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";