2009-10-13 12 views
7

मेरे पास कुछ पाठ है जिसमें "\ r \ n" न्यूलाइन मार्कर हैं। मैं एक WPF टेक्स्टब्लॉक में न्यूलाइन करना चाहता हूं। मैंने "\ r \ n" को "& # 13" के साथ बदलने की कोशिश की है; (रिक्त स्थान के बिना), जो मैंने XAML में टेक्स्ट प्रॉपर्टी सेट करते समय काम किया, लेकिन सी # कोड-पीछे से सेट करते समय काम नहीं कर रहा है।एक WPF टेक्स्टब्लॉक में पैराग्राफ प्राप्त करने का सबसे अच्छा तरीका क्या है? (न्यूलाइन वर्ण?)

तो ... एक WPF टेक्स्टब्लॉक में "\ r \ n" को न्यूलाइन में बदलने का मानक तरीका क्या है?

अग्रिम में Thx!

[संपादित करें] यहां जवाब मिलने के बाद, इस तरह मैं एक WPF टेक्स्टब्लॉक पर "\ r \ n" न्यूलाइन के साथ टेक्स्ट असाइन कर रहा हूं। यह ठीक काम करता है, लेकिन कोडिंग के मामले में कोई भी पुष्टि कर सकता है कि यह जाने का एक उचित तरीका है?

 // 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)); 
     } 

[/ संपादित करें]

उत्तर

25

इन्हें अधिक WPF केंद्रित समाधान के लिए आज़माएं।

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

यह भी देखें: XAML based Answer

+0

धन्यवाद! यह उस जगह पर है जिस तरह से मैंने जाने का फैसला किया है। – MrGreggles

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

मैं स्पष्ट रूप से कुछ याद कर रहा हूँ, lol: http://screencast.com/t/tKjtFMk8Jv – MrGreggles

+0

शायद SL के साथ काम नहीं करता है? वैसे भी, मैंने आपके प्रश्न को गलत तरीके से पढ़ा - मेरा अद्यतन उत्तर देखें। यह डब्ल्यूपीएफ के साथ काम करता है - एसएल के बारे में निश्चित नहीं है। आपके उत्तरों के लिए –

+0

Thx। मैंने एश का जवाब चुना है, डब्ल्यूपीएफ केंद्रित है और ऐसा लगता है कि यह जाने का सबसे अच्छा तरीका है। – MrGreggles

0

जब सी # लेखन मैं हमेशा न्यू लाइन गाड़ी वापसी के लिए "System.Environment.Newline" का उपयोग करें।

इसका मतलब है कि आपको चरित्र कोडिंग या गंतव्य ओएस का उपयोग करने की चिंता करने की आवश्यकता नहीं है।

मुझे अंतर्निहित .cs फ़ाइल से कॉल करते समय WPF GUI पर काम करने के लिए भी मिला है।

+0

उत्तर के लिए धन्यवाद। इस मामले में मैं WPF- केंद्रित समाधान के साथ चला गया है। – MrGreggles