2011-01-07 7 views
3

Visual Studio의 출력 창과 같이 장기 실행 작업의 상태/진행 상태를 표시하기 위해 일련의 텍스트를 스트리밍하려고합니다.WPF에서 텍스트를 화면에 효율적으로 스트리밍하는 방법은 무엇입니까?

<ScrollViewer Canvas.Left="12" Canvas.Top="12" Height="129" Name="scrollViewer1" Width="678"> 
     <TextBlock Name="text" TextWrapping="Wrap"></TextBlock> 
    </ScrollViewer> 

뒤에 코드 :

private void Update(string content) 
    { 
     text.Text += content + "\n"; 
     scrollViewer1.ScrollToBottom(); 
    } 

잠시 후, 그것은 정말 느린 도착

현재 나는이 XAML 같은 수 있습니다.
이런 종류의 작업을 수행하는 권장 방법이 있습니까? 올바른 종류의 컨트롤을 사용하고 있습니까?

감사합니다.

+0

정말 느린 것은 무엇을 의미합니까? 슬로우 스크롤? 탐색 할 때 전반적인 앱이 느려 집니까? –

답변

4

최소한 읽기 전용으로 TextBox을 사용하고 AppendText() 메서드를 사용하여 텍스트를 추가하고 싶을 것입니다.

물론 충분한 양의 텍스트가 있으면 성능 문제가 발생하지 않습니다. 그렇다면 가상화 (데이터 및 UI) 솔루션을 조사해야 할 수도 있습니다.

+2

TextBlock보다 TextBox 선택에 놀랐습니다. 그들의 성능을 테스트하고 테스트가 완전히 당신의 요점을 반영하기를 원했습니다, Kent. TextBlock에 100K 단어를 추가하는 데는 91625ms가 걸리지 만 TextBox에는 단지 10737ms 밖에 걸리지 않았습니다. – Anvaka

관련 문제