2009-08-01 15 views
18

Tal vez no estoy usando las palabras clave correctas, pero todas mis búsquedas están vacías. ¿Cómo se fuerza un salto de línea?¿Cómo fuerza un salto de línea entre dos palabras en una etiqueta declarada XAML?

te puedo decir que ninguno de los siguientes trabajos:

<Label 
    Content="Line&br;Break:" /> 

<Label 
    Content="Line<br />Break:" /> 

<Label 
    Content="Line 
    Break:" /> 

<Label 
    Content="Line\nBreak:" /> 

Puede alguien compartir este secreto muy bien guardado?

Gracias.


EDIT:

Está bien, no importa. I finalmente lo encontré.

<Label 
    Content="Line&#x0a;Break:" /> 

Definitivamente no es fácil de adivinar!


EDIT 2:

bien, y ahora para obtener el texto para ser justificado a la derecha, fui con esto:

<Label> 
    <TextBlock 
     TextAlignment="Right" 
     Text="Line&#x0a;Break:" /> 
</Label> 

Gracias a Julien para la idea de usar un TextBlock.

Respuesta

23

Si sólo necesita para mostrar el texto, se puede utilizar un TextBlock en lugar de un Label:

<TextBlock> 
    Line<LineBreak/>Break: 
</TextBlock> 

Si realmente necesita un Label (por ejemplo, que necesita para responder a un evento de clic), se puede envolver el código anterior dentro de un Label.

+0

No lo necesito para responder a un evento de clic, pero lo necesito para gris cuando está deshabilitado (que creo que TextBlock no funcionará sin código adicional/marcado). Sin embargo, ahora tengo un problema tratando de justificar el texto de mi etiqueta, así que podría necesitar usar algo más. HorizontalAlignment = "Right" y HorizontalContentAlignment = "Right" no tienen ningún efecto. – devuxer

+0

Puede establecer la propiedad TextAlignment del TextBlock en Right. En cuanto a la salida gris, va a requerir marcado adicional. –

+0

Gracias, Julien. Pude resolver poniendo TextBlock dentro de una etiqueta (ver mis ediciones arriba). – devuxer

0

que haría esto:

<StackPanel> 
    <Label>First line</Label> 
    <Label>Second line</Label> 
</StackPanel> 

Si el formato se pone muy involucrado, que haría uso de FlowDocumentScrollViewer.

+1

Esta no es la forma prevista.Debido a que son controles separados, tiene que ocuparse de los márgenes, etc ... (actúa más como un párrafo) ¡El TextBlock con LineBreaks es mucho más limpio! – Jowen

2

Si desea una nueva línea en una etiqueta:

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

("10" es el número ASCII de salto de línea)

o

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

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

Cuestiones relacionadas