wpf - WPF 中高效的实时日志查看器

标签 wpf

我想要 WPF 中的高效日志查看器控件,它只是在添加消息时显示实时日志。连接到来自日志系统的通知是没有问题的,但我担心一旦日志行的数量变大,日志窗口会随着每​​个附加的日志行而爬行。

日志通知事件将简单地提供一个日志字符串(以及一些元数据),我想将其附加到 TextBox 中的行或类似的带有滚动条的行中。假设有足够的内存,添加大量行不应该是内存问题,但我不希望系统在添加第 10,000 行后变慢。

我假设一旦字符串达到 MB 大小和数千行,将 TextBox 绑定(bind)到简单的字符串依赖属性会变得相当慢。

如何在 WPF 中有效地编写这样的控件?

最佳答案

为什么不使用列表框?创建一个集合,您每次都在其中添加日志消息,然后将此集合绑定(bind)到您的 itemscontrol itemssource。

编辑:
我在我的项目中使用数据网格来显示来自 WCF 服务的消息

编辑2:
一些 Itemss 控件具有以下 property这应该有助于:

<ListBox VirtualizingStackPanel.IsVirtualizing="True" />

关于wpf - WPF 中高效的实时日志查看器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5989052/

相关文章:

C# 清除线程主体

c# - 如何通过 WPF 动画使图像变大(产生选择的错觉)?

c# - 从 System.Windows.Media.Geometry 获取坐标列表

WPF (MVVM) : Wiring up viewModel to view in code-behind of Window?

c# - 如何使用 List<T>() 隐藏私有(private)字段?

c# - 在已经正常运行的应用程序中的 WPF/C# 中撤消重做

c# - 打开一个 WPF 窗口应用程序窗体 VS 扩展命令

wpf - 在 WPF 中使用多个修饰键创建 KeyBinding

c# - DataGrid.ColumnWidth ="*"在 ScrollViewer 中不起作用

c# - WPF - MVVM 绑定(bind)