2010-08-31 11 views

cevap

1

Diğer işletim sistemleriyle uyumluluk nedeniyle düşünüyorum.

Silverlight, linux ve mac işletim sistemlerinde kullanılabilir. Bu OS'lerin ikisi (ve çoğu) unix tabanlı ve unix yeni satırlar için '\ r' kullanır. MS geliştiriciler çoğunlukla '\ r \ n' yerine Environment.NewLine kullanmanın yazmak için eskiden olduğu gibi çerçeve kaynak kodu görünüyor bakarken

(bildiğim kadarıyla ı '\ r \ n' kullanarak yalnızca MS biliyoruz).

+0

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

+0

Yanlış bakınız. UNIX ve MacOS X'in her ikisi de \ n. Kullanılacak tek sistem MacOS v.9 ve altındaydı. –

2

Ertan'ın cevabına katılıyorum. Bunun bir uygunsuzluk olduğu bir senaryoya rastladım.

Biz Silverlight Textbox'a ve mağazalar aracılığıyla bir kullanıcıdan dize verileri toplayan bir uygulama olması çok yaygın bir SQL Server veritabanı, veri. Uygulamanın diğer bileşenleri, saklanan satır verileri beklerken satır sonlarını "\r\n" tarafından temsil edildiğinde bir sorun ortaya çıkar. Böyle bir bileşenin bir örneği Telerik'in raporlama çözümü: Bkz. Line break issue in multi line text boxes.

bu değer dönüştürücü kullanarak bu sorunun üstesinden:

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); 
    } 
} 
İlgili konular