2009-08-01 5 views
18

Forse non sto usando le parole chiave giuste, ma tutte le mie ricerche stanno arrivando vuote. Come si forza un'interruzione di linea?Come si forza un'interruzione di riga tra due parole in un'etichetta dichiarata XAML?

vi posso dire che nessuno dei seguenti lavori:

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

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

<Label 
    Content="Line 
    Break:" /> 

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

Qualcuno può condividere questo segreto gelosamente custodito?

Grazie.


EDIT:

Va bene, non importa. I finalmente trovato lo.

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

Decisamente non facile da indovinare!


EDIT 2:

Ok, e ora per ottenere il testo per essere giustificato a destra, sono andato con questo:

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

Grazie a Julien per l'idea di utilizzare un TextBlock.

risposta

23

Se avete solo bisogno di visualizzare il testo, è possibile utilizzare un TextBlock invece di un Label:

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

Se davvero bisogno di un Label (ad esempio, è necessario rispondere a un evento click), si può avvolgere il codice sopra all'interno di un Label.

+0

Non ho bisogno di rispondere a un evento click, ma ho bisogno di disattivarlo quando disabilitato (che credo TextBlock non farò a meno di codice/markup extra). Tuttavia, ora sto riscontrando un problema nel tentativo di giustificare correttamente il testo della mia etichetta, quindi potrei aver bisogno di usare qualcos'altro. HorizontalAlignment = "Right" e HorizontalContentAlignment = "Right" non hanno alcun effetto. – devuxer

+0

È possibile impostare la proprietà TextAlignment di TextBlock su Right. Per quanto riguarda il grigio, richiederà un extra markup. –

+0

Grazie, Julien. Sono stato in grado di risolvere mettendo TextBlock all'interno di un'etichetta (vedere le mie modifiche sopra). – devuxer

0

farei questo:

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

Se la formattazione viene realmente coinvolto, userei FlowDocumentScrollViewer.

+1

Questo non è il modo previsto.Poiché sono controlli separati, devi occuparti dei margini ecc ... (si comporta più come un paragrafo) Il TextBlock con LineBreaks è molto più pulito! – Jowen

2

Se si vuole una nuova linea in un'etichetta:

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

("10" è il numero ASCII per newline)

o

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

("A" è il numero di ascii per newline in hex)

Problemi correlati