2010-08-31 20 views

risposta

1

Penso per compatibilità con altri sistemi operativi.

Silverlight è disponibile sui sistemi operativi Linux e Mac. Entrambi (e la maggior parte) di questi sistemi operativi sono basati su unix e unix utilizza '\ r' per le nuove linee. (per quanto ne so solo MS usando '\ r \ n')

Mentre guardare il codice sorgente della struttura sembra come se gli sviluppatori MS usassero per lo più '\ r \ n' invece di usare Environment.NewLine.

+0

Vedi anche http://connect.microsoft.com/VisualStudio/feedback/details/419751/silverlight-textboxes-environment-newline – Koen

+0

sbagliato. Sia UNIX che MacOS X usano entrambi \ n. L'unico sistema da usare \ r era MacOS v.9 e sotto. –

2

Sono d'accordo con la risposta di ertan. Mi sono imbattuto in uno scenario in cui questo è un inconveniente.

Abbiamo un'applicazione che raccoglie i dati di stringa da un utente attraverso una casella di testo Silverlight e archivia tali dati in un database SQL Server, che è molto comune. Un problema si presenta quando altri componenti dell'applicazione utilizzano i dati di stringa memorizzati che prevedono interruzioni di riga per essere rappresentati da "\r\n". Un esempio di tale componente è la soluzione di reporting di Telerik: vedere Line break issue in multi line text boxes.

ho superato questo problema utilizzando questo convertitore valore:

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); 
    } 
} 
Problemi correlati