7

我有一个Windows Phone应用程序。在应用程序中,我有一个其recereturn属性设置为true的文本框。NewLine更换c#?

我想要做的就是创建一个从文本字符串,并与特定的字符替换新的生产线,像"NL"

我试过以下,但没有一次成功。

string myString = myTextBox.Text.Replace(Environment.NewLine,"NL"); 
string myString = myTextBox.Text.Replace("\n","NL"); 
+1

你确定它的换行符你之后,并没有'马车return' - \ r? 'string myString = myTextBox.Text.Replace(“\ r”,“NL”);'工作?例如,Windows上的Environment.NewLine通常是'\ r \ n',所以你试过\ n和\ r \ n! – dash 2013-03-05 10:06:16

+0

它为什么不起作用?有没有例外?或者输出没有按照你的想法格式化? – psubsee2003 2013-03-05 10:07:36

+0

它没有引起异常,它只是没有工作。 newline did not replace – user1924391 2013-03-05 10:08:33

回答

8

我不熟悉的Windows Phone(或Silverlight),但尝试\r分裂,而不是:

string myString = myTextBox.Text.Replace("\r","NL"); 

Why does a Silverlight TextBox use \r for a newline instead of Environment.Newline (\r\n)?

+0

是的,毕竟这是答案!谢谢! – user1924391 2013-03-05 10:11:46

+0

这是否归类为重复?是Windows手机有效Silverlight? – 2013-03-05 10:18:53

+1

@DavidHughes:是http://stackoverflow.com/a/9390151/284240 – 2013-03-05 10:28:58

3

考虑更换线的不同类型的中断来处理所有可能性

string myString myTextBox.Replace("\r\n", "NL").Replace("\n", "NL").Replace("\r", "NL"); 
1

使用此鳕鱼e

var myString = myTextBox.Text.Replace("\r","NL"); 

这是为了与每个操作系统兼容。

+0

谢谢先生!毕竟这是答案 – user1924391 2013-03-05 10:13:30

1

一个question有类似的话题有一个很优雅answer你可能会考虑有趣的使用方法:

using System.Text.RegularExpressions; 

myTextBox.Text = Regex.Replace(myTextBox.Text, @"\r(?!\n)|(?<!\r)\n", "NL");