2013-07-04 19 views
0

这是场景:在Panel中显示大量UIElement s。如何在面板中高效显示大量UIElements?

由于这些控件的数量可能很大,所以我很担心内存分配和性能问题。

可视化是一种选择,但我希望能够做的更好,因为我们的目标是只显示这些控件的内容,也没有需要处理鼠标或键盘事件。

在这种情况下,有什么方法可以提高性能吗?

谢谢。

+0

“多少”是多少?内存/性能影响可能不会像你想象的那么重要。如果这是一个半合理的数字,那么快速实现基本测试/ GUI来查看它是否会成为问题可能会更简单。 –

回答

0

您只需使用正常的ListBox即可显示它们,默认面板为VirtualizingStackPanel,默认情况下IsVirtualizing属性设置为true。

VirtualizingStackPanel

你当前正在运行的性能问题或者他们发生的情况下为他们准备?在生成并显示所有内容和发现的问题后,我只会担心性能问题。

这里是如何管理大型数据集和虚拟化的一些例子一篇文章:http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization

+0

谢谢。我的理论意思是,当不需要处理鼠标事件或不需要像_IsMouseOver_和...这样的属性时,是否有一种提高性能的方法? – Ramin

+0

添加了一个链接到我发现的文章与一些例子。也检查出user1795804s链接。我认为这可能是现在最好的 –

0

你说...可视化我假设也许你的意思是虚拟化?如果是这样,那么你可能会或可能不知道这个网站:http://msdn.microsoft.com/en-us/library/cc716879.aspx

除了虚拟化,他们还谈论延期滚动。我希望这有帮助。

+0

顺便说一句,你可能会有多少物品? – Killingsworth

+0

感谢您纠正我。用户决定元素的数量,我想为任何场景做好准备。 – Ramin

+0

我真的不会为此担心。我会启用虚拟化让.NET CLR负责其余部分。 – Killingsworth