WPF:最适合显示大量文本的UI元素?

时间:2014-04-28 09:29:01

标签: c# wpf text textblock

我目前正在开发一个C#/ WPF程序,我在其中显示大量文本数据(重放文本日志)。它在一个计时器上运行,该计时器从文本文件中读取,然后将数据发送到将显示它们的用户控件。我遇到的问题是,在TextBlock I使用中显示覆盖所述秒的数据(由于数据量,~11k行pr秒)需要一秒多的时间。如果我跳过显示部分,计时器/程序运行正常,没有任何延迟。

在更新速度方面,显示此数据量的最佳UI元素是什么?

3 个答案:

答案 0 :(得分:1)

尝试AvalonEdit,它非常适合处理大数据,与TextBox / Block不同,后者在处理大数据时会使UI无响应。 http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor

您确定用户需要整个数据吗?您也可以只显示日志的尾部(例如,最后100K行)并提供下载整个文本或某种分页机制的链接。

答案 1 :(得分:1)

对于大数据,如果你分页结果,你几乎总是更好。

这是谷歌搜索结果的方法。你得到数百万,但第一页上只有一小部分。

Microsoft为您提供了完成此任务的工具 - FlowDocument

您可以非常快速地获得专业的读者样式输出,例如Kindle屏幕。

enter image description here

答案 2 :(得分:0)

您可以创建日志消息/字符串/行的集合,并将它们用作虚拟化面板的项目源,例如Listbox默认使用它。只会呈现实际位于视野中的那些消息。