La linea inferiore in alto
<TextBox Text="This is line one! This is line two!" />
Linebreak Stranezze nel controllo TextBox Silverlight
Se si intende inizializzare il contenuto di un TextBox con testo letterale in Xaml in modo simile a un TextBlock, è necessario un modo affidabile per rappresentare il carattere di interruzione di riga utilizzato da Silverlight in Xaml.
Silveright utilizza un carattere CR (0x0D - ASCII 13) per rappresentare una interruzione di riga che in C# viene inclusa in una stringa letterale come \ r. Tuttavia Xaml non è C# quindi non puoi usare \ r in Xaml.
Xaml è fondamentalmente XML ma con alcune stranezze di Xaml. Includendo semplicemente un'interruzione di riga, come Derek ha nella sua risposta, direttamente in Xaml non funzionerà in fase di esecuzione (anche se il progettista lo visualizza come previsto). Si potrebbe pensare che ciò perché Xml utilizza il carattere LF (0x0A) come carattere di interruzione di riga. Tuttavia nel codice è possibile assegnare una stringa contenente "\ r" o "\ n" alla proprietà Text
e il TextBox mostrerà una nuova riga. Infatti puoi assegnare la sequenza "\ r \ n" e mostrerà una singola nuova riga (non due nuove righe).
In definitiva, è possibile utilizzare l'entità del codice carattere Xml per rappresentare un \ r in Xaml " "
che sopravvive al processo di analisi Xaml per motivi che non riesco a spiegare in realtà.
Grazie per la risposta – MilkBottle
+1 per 'anche se il progettista lo visualizza come previsto'. Mi ha fatto capire che Designer potrebbe non visualizzare 'newline' con ' ', ma a runtime textblock sarebbe;) –
Funziona bene anche in WP8.1! – noob