Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 当呈现大量UI控件时,如何在WPF中获得最佳性能?_.net_Wpf_Performance - Fatal编程技术网

.net 当呈现大量UI控件时,如何在WPF中获得最佳性能?

.net 当呈现大量UI控件时,如何在WPF中获得最佳性能?,.net,wpf,performance,.net,Wpf,Performance,我正在开发一个WPF应用程序,其中许多UI控件同时呈现,它会减慢动画速度,等等。有什么方法可以防止这种情况发生吗?添加更少的控件,使用更少的动画,或者获得更好的视频卡。:) 如果不知道加载控件的具体方式,很难说。但是,以下是我的提示和提示: 不要使用ObservableCollection,除非您正在动态更改集合的内容。如果你有一张清单,就用它吧。我们像一群到处都是的新手一样使用ObserviceCollection;改变这一点大大加快了我们的应用程序 除非属性确实发生了更改,否则不要调用Pr

我正在开发一个WPF应用程序,其中许多UI控件同时呈现,它会减慢动画速度,等等。有什么方法可以防止这种情况发生吗?

添加更少的控件,使用更少的动画,或者获得更好的视频卡。:)

如果不知道加载控件的具体方式,很难说。但是,以下是我的提示和提示:

  • 不要使用ObservableCollection,除非您正在动态更改集合的内容。如果你有一张清单,就用它吧。我们像一群到处都是的新手一样使用ObserviceCollection;改变这一点大大加快了我们的应用程序

  • 除非属性确实发生了更改,否则不要调用PropertyChanged-如果需要,请与以前的属性进行比较

  • 考虑应用程序的可用性。如果同时显示多个控件会让PC感到困惑,那么用户可能也会感到困惑。你能把它们藏在扩展器里吗?把它们放在不同的标签上?是否有一种方法可以显示更少的信息,从而使应用程序更直观

  • 插入代码/添加一些定时日志,并检查是否确实是渲染导致了问题。然后考虑场景背后的计算和关系(见前两个提示你可以改变的东西)。


MSDN有一些建议:


还有我最喜欢的新手博客:

尽可能使用虚拟化-


看看VS2010开发团队的保罗·哈林顿的这篇文章。它有许多关于WPF性能的有用提示,并列出了这些人使用的工具。

我有更好的显卡、足够的ram和良好的处理器。我只想知道是否有任何技巧或任何东西可以使wpf应用程序顺利运行。我想说的是,不要使用ObservableCollection,因为您没有将它绑定到某个UI组件。在某些情况下,最好只使用一个列表,尤其是数据不会发生任何变化的情况下。ObservableCollection的唯一好处是,如果添加了一个附加项,UI将发现它。