Pregunta

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

<Label>Lorem 
  ipsum</Label>
¿Fue útil?

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 "&#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 hexadecimal)

Ejemplo, con una etiqueta de borde alrededor para mostrar límites

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";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top