显示文本内容

时间:2012-06-27 09:26:03

标签: c# wpf text

我希望非常简单。我有一篇文章要在窗口中显示。现在,不是在我的代码中心有大量的文本,我可以将它作为资源添加并以某种方式将其读出到窗口吗?

对于那些问为什么的人来说,这仅仅是因为它是一篇庞大的文章,并且在我的代码中间看起来非常难看。

更新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;
        }

2 个答案:

答案 0 :(得分:1)

您可以将该文本放在文本文件中,然后在代码中读出

http://msdn.microsoft.com/en-us/library/db5x7c0d.aspx

答案 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();