.net 用于初始UI呈现的WPF性能

.net 用于初始UI呈现的WPF性能,.net,wpf,performance,.net,Wpf,Performance,我正在寻找一般性能改进建议。 UI如下所示: 列表中有5列和大约700项。 所有数据加载都很快。但要让UI出现,需要5秒以上的时间。 调整大小也很慢。添加项目和删除项目需要很长时间 这肯定与绘画有关。渐变、图标等。我想知道我可以用什么技巧来加速它 有没有关于为什么会发生这种情况的一般想法?很可能不是图形本身导致性能问题,而是因为有这么多控件的复杂布局/排列过程。特别是,要确保尽可能地利用这一点,以防止实例化数百个尚未实际显示的可视元素。您可以通过ListBox免费获得它,但如果您使用滚动条进行更

我正在寻找一般性能改进建议。 UI如下所示:

列表中有5列和大约700项。 所有数据加载都很快。但要让UI出现,需要5秒以上的时间。 调整大小也很慢。添加项目和删除项目需要很长时间

这肯定与绘画有关。渐变、图标等。我想知道我可以用什么技巧来加速它


有没有关于为什么会发生这种情况的一般想法?

很可能不是图形本身导致性能问题,而是因为有这么多控件的复杂布局/排列过程。特别是,要确保尽可能地利用这一点,以防止实例化数百个尚未实际显示的可视元素。您可以通过ListBox免费获得它,但如果您使用滚动条进行更多自定义操作,则可能不会进行虚拟化。我唯一能给出的建议是通过将UI划分为不同的窗口/屏幕来降低其复杂性。从可用性的角度来看,这似乎很糟糕。当您只有今天的有效数据时,为什么需要一周的列表呢?这是开发人员示例。生产中的数据位于所有列中。引入屏幕不是一个选项,客户端更愿意处理启动缓慢的问题,而不是弹出窗口。丹,看起来你知道这里发生了什么。他们需要的信息就在那里。客户机有实时更新TCPIP,这是隐藏在带有工具提示的图标后面的最有价值的信息,但想法是将他们所需要的一切都放在那里。例如,他们可以隐藏/最小化列以使用3天,但问题仍然存在。我刚检查过,是的,它是用ScrollViewer包装的ItemsList。将尝试使用虚拟化使其成为ListBox。查看是否使用ItemsControl而不是ListBox。它有一个示例,说明如何使用滚动查看器重新模板ItemsControl以允许虚拟化。