Как изобразить разрыв строки или новую строку в текстовом поле Silverlight

Я испытываю трудности с подбором специальных символов, установленных в Silverlight. Я только о следующем:

Чтобы представить LineBreak в Silverlight TextBlock:

использовать: > lineBreak <

Но что мне использовать для представления новой строки или LineBreak в Silverlight TextBox??

Пример: я хочу одну строку mag: это первая строка. Это вторая строка

в это:

Это первая строка. Это вторая строка.

кажется, что это не работает. Это первая строка \r\n

7 ответов

Решение

Нижняя строка вверху

<TextBox Text="This is line one!&#13;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 "&#13;" который переживает процесс разбора 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 & "Это вторая строка!"

<TextBox x:Name="textBox" AcceptsReturn="True" />
Другие вопросы по тегам