我想流式传输一堆文本以显示长时间运行任务的状态/进度(例如Visual Studio中的输出窗口)。
目前我有类似这样的XAML:
<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();
}
过了一会儿,它变得非常慢 有没有推荐的做这种事情的方法?我使用的是正确的控件吗?
谢谢!
答案 0 :(得分:4)
至少,您需要使用只读TextBox
并使用AppendText()
方法附加文字。
当然,如果您有足够的文本量,您仍然无法免受性能问题的影响。在这种情况下,您可能需要研究虚拟化(包括数据和UI)解决方案。