如何在silverlight textBox中表示换行符或换行符

时间:2011-01-25 07:47:52

标签: silverlight xaml windows-phone-7 textblock

我很难匹配Silverlight中设置的特殊字符。我只对以下内容:

在Silverlight TextBlock中表示LineBreak:

使用:> lineBreak<

但是我用什么来表示Silverlight TextBox中的新行或LineBreak?

示例:我想要这一行mag:这是第一行。这是第二行

进入这个:

这是第一行。 这是第二行。

似乎这个\ r \ n无效。这是第一行\ r \ n

7 个答案:

答案 0 :(得分:48)

顶部的底线

<TextBox Text="This is line one!&#13;This is line two!" />

Silverlight TextBox中的Linebreak奇怪

如果您要以类似于TextBlock的方式在Xaml中使用文字文本初始化TextBox的内容,那么您需要一种可靠的方式来表示Silverlight在Xaml中使用的换行符。

Silveright使用CR字符(0x0D - ASCII 13)来表示在C#中包含在字符串文字中的换行符\ r \ n。但是Xaml不是C#,所以你不能在Xaml中使用\ _。

Xaml是有趣的XML,但有一些Xaml解析奇怪。只是包含一个换行符,就像Derek在他的回答中一样,直接在Xaml中将无法在运行时工作(尽管设计师按预期显示它)。您可能会认为这是因为Xml使用LF字符(0x0A)作为其换行符。但是在代码中,您可以为Text属性分配包含“\ r”或“\ n”的字符串,TextBox将显示一个新行。实际上,您可以指定序列“\ r \ n”,它将显示一个新行(而不是两个新行)。

最终你可以使用Xml字符代码实体来表示Xaml "&#13;"中的\ r \ n,它在Xaml解析过程中幸存下来,原因我无法解释。

答案 1 :(得分:18)

在XAML中,您只需使用LineBreak:

<TextBlock Name="textBlock1" >line 1 <LineBreak /> line 2</TextBlock>

答案 2 :(得分:10)

要在XAML中为Text的{​​{1}}属性添加换行符,请使用换行符的ASCII字符代码,如以下示例所示:

TextBox

要在代码隐藏中为<TextBox x:Name="_test" Height="150" Text="This is line one. This is line two." /> 的{​​{1}}属性添加换行符,请使用Text静态值(与TextBox相同)如下代码示例所示:

Environment.NewLine

答案 3 :(得分:2)

如果要显示带有回车符的字符串,只需使用带回车符的字符串:

MyTextBlock.Text = @"line 1
line2";

答案 4 :(得分:2)

谢谢大家。

它正在发挥作用。 对于Silverlight TextBlock:在<lineBreak/> XAML 中使用textBlock

感谢AnthonyWJones 对于Silverlight textBox,我在用于在TextBox中显示的字符串中使用“\ r”

答案 5 :(得分:1)

对于Windows Phone Silverlight TextBlock中的换行符,请使用:

“这是第一行!” &安培; vbCrLf&amp; “这是第二行!”

答案 6 :(得分:0)

<TextBox x:Name="textBox" AcceptsReturn="True" />