в нижней строке в верхней
<TextBox Text="This is line one! This is line two!" />
LineBreak Weirdness в TextBox Silverlight
Если вы собираетесь инициализировать содержимое TextBox буквальным текстом в Xaml аналогичным образом, чтобы вы могли использовать TextBlock, вам нужен надежный способ представления символа разрыва строки, который Silverlight использует в Xaml.
Silverlight использует символ 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 по причине, которую я не могу объяснить.
Спасибо за ответ – MilkBottle
+1 за 'хотя дизайнер отображает его как ожидалось'. Сделал меня понять, что Дизайнер может не отображать 'newline' с ' ', но во время выполнения textblock будет;) –
Хорошо работает и в WP8.1! – noob