2012-06-27 141 views
3

我希望很簡單。我有一篇文章想要在窗口中顯示。現在,我可以將它作爲資源添加並以某種方式將其讀出到窗口中,而不是在代碼的中心有這麼大量的文本。顯示文本內容

對於那些問爲什麼,這只是因爲它是一個巨大的文章,並且會在我的代碼中間看起來非常難看。

更新爲H.B.

我已經嘗試了很多不同的方法來解決這個問題,目前正在研究GetManifestResourceStream並使用embeddedResource(txt文件)並將其寫入屏幕。還沒有完成測試,但如果它的工作,它會比複製和粘貼整個文本txtbox1.Text = "...blah blah blah"好多了。

_textStreamReader = new  
StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("Problem.Explaination.txt")); 
         try 
         { 
          if (_textStreamReader.Peek() != -1) 
          { 
           txtBlock.Text = _textStreamReader.ReadLine(); 
          } 
         } 
         catch 
         { 
          MessageBox.Show("Error writing text!"); 
         } 

我的查詢保持,有沒有實現這一目標(假設這是即使成功) 感謝

注意

在我的例子更好的方式上面我只想要一行文本。如果您正在使用它來從文件中讀取多行文件,您可以像這樣更改它;

StreamReader _textStreamReader; 
     _textStreamReader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("Problem.Explaination.txt")); 
     var fileContents = _textStreamReader.ReadToEnd(); 
     _textStreamReader.Close(); 

     String[] lines = fileContents.Split("\n"[0]); 
     String[] lines2; 
     Int16 count; 
     foreach (string line in lines) 
     { 
     txtBlock.Text += line; 
     } 
+0

本文是否爲靜態文本?在資源中放置這樣的東西並不常見。我甚至不談論代碼。 –

+0

要回答這個問題 - 是的,當然可以,我相信你會在幾分鐘內得到更正確的答案,這將幫助你弄清楚如何。但重申AnatoliiG的評論 - 爲什麼?爲了更好地理解和幫助你,最好知道原因。 =) –

+0

@downvoter反對的理由? – windowskm

回答

1

讀出來的文件添加爲資源,並在你的代碼,將其加載到一個字符串。

StringBuilder sb = new StringBuilder(); 
    using (var stream = this.GetType().Assembly.GetManifestResourceStream("MyNamespace.TextFile.txt")) 
    using(var reader = new StreamReader(stream)) 
    { 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     { 
      sb.AppendLine(line); 
     } 
    } 
    ViewModel.Text = sb.ToString();