2009-10-13 9 views
7

"\ r \ n" yeni satır işaretçileri olan bazı metinler var. WPF metin bloğunda yeni satırlara sahip olmak isterim. "\ R \ n" "& # 13;" ile değiştirmeyi denedim. XAML'de Text özelliğini ayarladığımda çalıştıran, ancak C# kod arkasından ayarlandığında işe yaramayacak olan (boşluk olmadan).WPF metin bloğunda paragrafları almanın en iyi yolu nedir? (newline chars?)

Peki ... "\ r \ n" bir WPF metin bloğundaki yeni satırlara dönüştürmenin standart yolu nedir?

Thx önceden!

[Düzenle] Burada yanıt aldıktan sonra, WPF metin bloğuna "\ r \ n" yeni satırlarla metin atama şeklim budur. İyi çalışıyor ama kodlama açısından herkes bunun makul bir yol olduğunu doğrulayabilir mi?

 // assign the message, replacing "\r\n" with WPF line breaks 
     string[] splitter = new string[] { "\r\n" }; 
     string[] splitMessage = message.Split(splitter, StringSplitOptions.None); 

     int numParagraphs = splitMessage.Count(); 
     if (numParagraphs == 1) 
     { 
      this.Message.Text = message; 
     } 
     else 
     { 
      // add all but the last paragraph, with line breaks 
      for (int i = 0; i < splitMessage.Count() - 1; i++) 
      { 
       string paragraph = splitMessage[i]; 
       this.Message.Inlines.Add(new Run(paragraph)); 
       this.Message.Inlines.Add(new LineBreak()); 
      } 
      // add the last paragraph with no line break 
      string lastParagraph = splitMessage[splitMessage.Count() - 1]; 
      this.Message.Inlines.Add(new Run(lastParagraph)); 
     } 

[/ Düzenle]

cevap

25

Daha fazla WPF merkezli bir çözüm için bunları deneyin.

TextBlock.Inlines.Add(new Run("First")); 
TextBlock.Inlines.Add(new LineBreak()); 
TextBlock.Inlines.Add(new Run("Second")); 

Ayrıca bkz: Açıkça bir şey eksik XAML based Answer

+0

Teşekkürler! Bu nokta ve gitmeye karar verdiğim yol. – MrGreggles

6
textBlock.Text = string.Format("One{0}Two", Environment.NewLine); 
+0

, lol: http://screencast.com/t/tKjtFMk8Jv – MrGreggles

+0

Belki SL ile çalışmıyor? Neyse, sorunuzu yanlış anladım - güncellenmiş cevabımı görün. WPF ile çalışır - SL hakkında emin değilim. Yanıtlarınız için –

+0

Thx. Ash'in cevabını WPF merkezli olarak seçtim ve böyle devam etmenin en iyi yolu gibi görünüyor. – MrGreggles

0

Hep satır satırbası "System.Environment.Newline" kullanmak C# yazmaya.

Bu, karakter kodlaması veya hangi işletim sisteminin kullandığı hakkında endişelenmenize gerek olmadığı anlamına gelir.

Ayrıca, temel .cs dosyasından çağrıldığında WPF GUI üzerinde çalışmayı buldum.

+0

Cevabınız için teşekkürler. Bu durumda WPF merkezli çözüm ile gittim. – MrGreggles

İlgili konular