2014-03-25 1 views
0

오후 모두;WPF를 사용하여 서식있는 텍스트 상자에 상당한 양의 텍스트를 저장할 때 렌더링 문제가 있습니까?

그래서 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; 
} 

내가 만든 응용 프로그램을 실행하면, 나는 텍스트가 매우 퍼지 거의 읽을 것을 알 수있다. Like this

그러나 줄을 약 500 줄이면이 ​​문제가 발생하지 않습니다. RichTextBox 내에 많은 텍스트가 표시되는 데 문제가 있습니까?

나는 모든 사용 가능한 옵션에 문제

  1. 을 설정 FormattingMode를 해결하기 위해 몇 가지를 시도했습니다.
  2. 활성화 클리어
  3. 3 TextRenderingModes
  4. 을 시도

이 알려진 문제인가? 제가 시도 할 수있는 것이 있습니까? 나는 이제 아이디어가 없어.

감사합니다.

+1

수행 가상화 TextBlock의
와 목록 상자와 선을 사용해보십시오 나는 FlowDocumentScrollViewer를 시도 할 것이다. 또 다른 옵션은 각 줄에 TextBlock이있는 ListBox (텍스트 일 ​​경우)입니다. – Paparazzi

답변

2

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

가 FlowDocumentScrollViewer를 사용해보십시오보다는하여 RichTextBox 한 번에 텍스트를 한 줄을 읽어보십시오

그냥 잘

+0

정확히 내가 그랬던 것입니다. 고맙습니다. 정말 감사. – zxnked