Как изобразить разрыв строки или новую строку в текстовом поле Silverlight
Я испытываю трудности с подбором специальных символов, установленных в Silverlight. Я только о следующем:
Чтобы представить LineBreak в Silverlight TextBlock:
использовать: > lineBreak <
Но что мне использовать для представления новой строки или LineBreak в Silverlight TextBox??
Пример: я хочу одну строку mag: это первая строка. Это вторая строка
в это:
Это первая строка. Это вторая строка.
кажется, что это не работает. Это первая строка \r\n
7 ответов
Нижняя строка вверху
<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 по причине, которую я не могу объяснить.
В XAML вы можете просто использовать LineBreak:
<TextBlock Name="textBlock1" >line 1 <LineBreak /> line 2</TextBlock>
Чтобы добавить разрыв строки в Text
свойство TextBox
в XAML используйте символьный код ASCII для перевода строки, как показано в следующем примере:
<TextBox x:Name="_test" Height="150" Text="This is line one.
This is line two." />
Чтобы добавить разрыв строки в Text
свойство TextBox
в коде позади, используйте Environment.NewLine
статическое значение (такое же, как \r\n
), как показано в следующем примере кода:
this._test.Text = string.Format(
"This is line one.{0}This is line two.",
Environment.NewLine);
Если вы хотите отобразить строку с возвратом каретки, просто используйте строку с возвратом каретки:
MyTextBlock.Text = @"line 1
line2";
Поблагодарить всех.
Это работает. Для Silverlight TextBlock
: использовать <lineBreak/>
в XAML textBlock
,
Спасибо AnthonyWJones для Silverlight textBox
Я использую "\r" в строке, которая используется для отображения в TextBox
,
Для разрыва строки в текстовом блоке Windows Phone Silverlight используйте:
"Это первая строка!" & vbCrLf & "Это вторая строка!"