我很难匹配Silverlight中设置的特殊字符。我只对以下内容:
在Silverlight TextBlock中表示LineBreak:
使用:> lineBreak<
但是我用什么来表示Silverlight TextBox中的新行或LineBreak?
示例:我想要这一行mag:这是第一行。这是第二行
进入这个:
这是第一行。 这是第二行。
似乎这个\ r \ n无效。这是第一行\ r \ n
答案 0 :(得分:48)
顶部的底线
<TextBox Text="This is line one! 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 " "
中的\ 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" />