我希望非常简单。我有一篇文章要在窗口中显示。现在,不是在我的代码中心有大量的文本,我可以将它作为资源添加并以某种方式将其读出到窗口吗?
对于那些问为什么的人来说,这仅仅是因为它是一篇庞大的文章,并且在我的代码中间看起来非常难看。
更新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 :(得分:1)
您可以将该文本放在文本文件中,然后在代码中读出
答案 1 :(得分: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();