Нижняя строка вверху
<TextBox Text="This is line one! This is line two!" />
Странность разрыва строки в текстовом поле Silverlight
Если вы собираетесь инициализировать содержимое TextBox литеральным текстом в Xaml аналогично тому, как вы можете использовать TextBlock, тогда вам нужен надежный способ представления символа разрыва строки, который Silverlight использует в Xaml.
Silveright использует символ CR (0x0D - ASCII 13) для представления перевода строки, который в C # вы включаете в строковый литерал как \ r. Однако Xaml не является C #, поэтому вы не можете использовать \ r в Xaml.
Xaml - это по сути XML, но с некоторыми странностями при разборе Xaml. Просто включение перевода строки, как Дерек указал в своем ответе, непосредственно в Xaml не будет работать во время выполнения (хотя дизайнер отображает его, как и ожидалось). Вы можете подумать, что это потому, что Xml использует символ LF (0x0A) в качестве символа перевода строки. Однако в коде вы можете назначить строку, содержащую «\ r» или «\ n» свойству Text
, и TextBox покажет новую строку. Фактически вы можете назначить последовательность "\ r \ n", и она покажет одну новую строку (не две новые строки).
В конечном итоге вы можете использовать объект кода символа Xml для представления \ r в Xaml " "
, который переживает процесс синтаксического анализа Xaml по причине, которую я на самом деле не могу объяснить.