2010-08-31 11 views

Respuesta

1

Creo que debido a la compatibilidad con otros sistemas operativos.

Silverlight está disponible en sistemas operativos Linux y Mac. Ambos (y la mayoría) de estos sistemas operativos están basados ​​en Unix y Unix usa '\ r' para líneas nuevas. (Hasta ahora solo sé MS usando el '\ r \ n')

Mientras mira el código fuente del framework parece que los desarrolladores de MS solían escribir '\ r \ n' en lugar de usar Environment.NewLine.

+0

Ver también http://connect.microsoft.com/VisualStudio/feedback/details/419751/silverlight-textboxes-environment-newline – Koen

+0

incorrecto. UNIX y MacOS X ambos usan \ n. El único sistema para usar fue MacOS v.9 y siguientes. –

2

Acepto la respuesta de ertan. Me encontré con un escenario en el que esto es un inconveniente.

Tenemos una aplicación que recopila datos de cadena de un usuario a través de un cuadro de texto de Silverlight y almacena esos datos en una base de datos de SQL Server, que es muy común. Se produce un problema cuando otros componentes de la aplicación utilizan los datos de cadena almacenados esperando saltos de línea representados por "\r\n". Un ejemplo de tal componente es la solución de informes de Telerik: Ver Line break issue in multi line text boxes.

que superaron este problema mediante el uso de este convertidor de valores:

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); 
    } 
} 
Cuestiones relacionadas