Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

In silverlight, if a TextBox AcceptsReturn, all newlines are \r, even though Environment.Newline is \r\n. Why is this? (WPF has \r\n as newline for textbox)

like image 400
NotDan Avatar asked Aug 31 '10 15:08

NotDan


2 Answers

I agree with ertan's answer. I have ran into a scenario in which this is inconveniencing.

We have an application that collects string data from a user through a Silverlight Textbox and stores that data in a SQL Server database, which is a very common. A problem arises when other components of the application use that stored string data expecting line breaks to be represented by "\r\n". One example of such a component is Telerik's reporting solution: See Line break issue in multi line text boxes.

I overcame this problem by using this value converter:

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);
    }
}
like image 73
Ronnie Overby Avatar answered Nov 13 '22 18:11

Ronnie Overby


I think because of compatibility with other operating systems.

Silverlight is available on linux and mac operating systems. Both (and most) of these OS's is unix based and unix uses '\r' for new lines. (as far i know only MS using the '\r\n')

While looking framework source code seems like MS developers mostly used to type '\r\n' instead of using Environment.NewLine.

like image 26
ertan Avatar answered Nov 13 '22 19:11

ertan