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

Mil*_*tle 21 silverlight xaml textblock windows-phone-7

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

在Silverlight TextBlock中表示LineBreak:

使用:> lineBreak <

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

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

进入这个:

这是第一行.这是第二行.

看起来这个\ r \n不起作用.这是第一行\ r \n

Ant*_*nes 48

顶部的底线

<TextBox Text="This is line one!&#13;This is line two!" />
Run Code Online (Sandbox Code Playgroud)

Silverlight TextBox中的Linebreak古怪

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

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

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

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


Ahm*_*met 18

在XAML中,您可以简单地使用LineBreak:

<TextBlock Name="textBlock1" >line 1 <LineBreak /> line 2</TextBlock>
Run Code Online (Sandbox Code Playgroud)


Der*_*kin 10

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

<TextBox x:Name="_test" Height="150" Text="This is line one.
This is line two." />
Run Code Online (Sandbox Code Playgroud)

要在代码隐藏的Text属性中添加换行符TextBox,请使用Environment.NewLine静态值(\r\n与以下代码示例相同),如以下代码示例所示:

this._test.Text = string.Format(
    "This is line one.{0}This is line two.",
    Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)