2015-04-23 34 views
2

有沒有什麼方法可以在文本換行之後將TextBlock行作爲單獨的字符串?舉例來說,如果我有這樣定義一個TextBlock:獲取TextBlock行作爲單獨的字符串WPF

TextBlock myTextBlock = new TextBlock(); 
myTextBlock.TextWrapping = TextWrapping.Wrap; 
myTextBlock.Text = veryLongString; 

是否有可能得到顯示在我的TextBlock中的每一行,這是由TextWrapping.Wrap創建單獨的字符串?

+0

有風格在這裏表現得像一個TextBlock一個TextBox的合理期待實現:HTTP://計算器。 com/questions/1105982/visible-line-count-of-a-textblock,提供對LineCount屬性的訪問。可能是一個實際的方法。 – goobering

回答

0

的TextBlock擁有財產稱爲Inline,你可以使用和訪問字符串一個接一個,

  StringBuilder s = new StringBuilder(); 
      foreach (var line in txtsample.Inlines) 
      { 
       if (line is LineBreak) 
        s.AppendLine(); 
       else if (line is Run) 
        s.Append(((Run)line).Text); 
      } 
      var text = s.ToString(); 
      } 
+0

我試過這個,但問題是我總是隻有一行,它具有整個「veryLongString」字符串的值,所以我不通過InlineCollection循環,因爲它只有一個值。 – Stojdza

+0

你應該有linebrakes爲了獲取線條,否則嘗試具有線條屬性的文本框 – Sajeetharan

+0

即使您使用換行符將「Text」設置爲字符串,整個文本也會進入單個Run,這將成爲'Inline'集合。 – Clemens