2010-08-31 70 views

回答

1

我認爲是因爲與其他操作系統的兼容性。

Silverlight可用於Linux和Mac操作系統。這兩個操作系統(大多數)都是基於unix的,而unix使用'\ r'作爲新行。 (據我所知只有MS使用'\ r \ n')

雖然看框架源代碼似乎像MS開發人員大多用來鍵入'\ r \ n'而不是使用Environment.NewLine。

+0

也http://connect.microsoft.com/VisualStudio/feedback/details/419751/silverlight-textboxes-environment-newline – Koen 2012-03-13 13:04:07

+0

看錯。 UNIX和MacOS X都使用\ n。唯一使用\ r的系統是MacOS v.9及更低版本。 – 2014-04-04 01:06:01

2

我同意ertan的回答。我遇到了這種情況,這是不方便的。

我們有一個應用程序,通過Silverlight文本框從用戶那裏收集字符串數據,並將該數據存儲在SQL Server數據庫中,這是非常常見的。當應用程序的其他組件使用預期換行符的存儲的字符串數據由"\r\n"表示時,會出現問題。這種組件的一個例子是Telerik的報告解決方案:請參閱Line break issue in multi line text boxes

我用這個值轉換器克服了這個問題:

public class LineBreakCorrectionConverter : IValueConverter 
{ 
    private const string CR = "\r"; 
    private const string CRLF = "\r\n"; 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     string text = value as string; 

     if (text == null) 
      return null; 

     return text.Replace(CRLF, CR); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     string text = value as string; 

     if (text == null) 
      return null; 

     return text.Replace(CR, CRLF); 
    } 
} 
相關問題