C# 使用WPF在富文本框中存储大量文本时是否存在渲染问题?

C# 使用WPF在富文本框中存储大量文本时是否存在渲染问题?,c#,wpf,richtextbox,C#,Wpf,Richtextbox,下午全部 因此,我一直在使用C#和WPF开发一个应用程序。我使用一个富文本框来显示相当数量的静态文本,比如大约1000行(10到30个单词之间的行) 我通过将文本保存在文本文件中来插入文本。然后读取该文本文件并将其保存为字符串变量。然后将该字符串变量放入FlowDoc中,如下所示: public void fillTimeline(RichTextBox timeline) { FlowDocument myFlowDoc = new FlowDocument(); strin

下午全部

因此,我一直在使用C#和WPF开发一个应用程序。我使用一个富文本框来显示相当数量的静态文本,比如大约1000行(10到30个单词之间的行)

我通过将文本保存在文本文件中来插入文本。然后读取该文本文件并将其保存为字符串变量。然后将该字符串变量放入FlowDoc中,如下所示:

public void fillTimeline(RichTextBox timeline)
{
    FlowDocument myFlowDoc = new FlowDocument();

    string x = System.IO.File.ReadAllText(@"path");

    myFlowDoc.Blocks.Add(new Paragraph(new Run(x)));

    timeline.Document = myFlowDoc;
} 
一旦我构建并运行了应用程序,我发现文本非常模糊,几乎无法阅读。

但是,如果我将行数减少到大约500行,则不会出现此问题。在RichTextBox中显示那么多文本是否存在问题

我尝试了一些方法来解决这个问题

  • 将FormattingMode设置为所有可用选项
  • 启用ClearType
  • 尝试所有3种文本渲染模式
  • 这是一个已知的问题吗?有什么我可以试试的吗。我现在没有主意了


    谢谢。

    试着一行一行地读课文

    List<String> Lines = new List<String>();
    System.IO.StreamReader file = 
       new System.IO.StreamReader("c:\\test.txt");
    while((line = file.ReadLine()) != null)
    {
       myFlowDoc.Blocks.Add(new Paragraph(new Run(x)));
       Lines.Add(line);
    }
    
    file.Close();
    
    列表行=新列表();
    System.IO.StreamReader文件=
    新System.IO.StreamReader(“c:\\test.txt”);
    而((line=file.ReadLine())!=null)
    {
    添加(新段落(新运行(x));
    行。添加(行);
    }
    file.Close();
    
    尝试使用FlowDocumentScrollViewer而不是RichTextBox

    尝试仅使用带有TextBlock的列表框的行

    通过虚拟化,它的性能很好

    我会尝试使用FlowDocumentScrollViewer。另一个选项是一个列表框,每行有文本块(如果它只是文本的话)。这正是我想要的。非常感谢你。我真的很感激。