这是场景:在Panel
中显示大量UIElement
s。如何在面板中高效显示大量UIElements?
由于这些控件的数量可能很大,所以我很担心内存分配和性能问题。
可视化是一种选择,但我希望能够做的更好,因为我们的目标是只显示这些控件的内容,也没有需要处理鼠标或键盘事件。
在这种情况下,有什么方法可以提高性能吗?
谢谢。
这是场景:在Panel
中显示大量UIElement
s。如何在面板中高效显示大量UIElements?
由于这些控件的数量可能很大,所以我很担心内存分配和性能问题。
可视化是一种选择,但我希望能够做的更好,因为我们的目标是只显示这些控件的内容,也没有需要处理鼠标或键盘事件。
在这种情况下,有什么方法可以提高性能吗?
谢谢。
您只需使用正常的ListBox
即可显示它们,默认面板为VirtualizingStackPanel
,默认情况下IsVirtualizing
属性设置为true。
你当前正在运行的性能问题或者他们发生的情况下为他们准备?在生成并显示所有内容和发现的问题后,我只会担心性能问题。
这里是如何管理大型数据集和虚拟化的一些例子一篇文章:http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization
谢谢。我的理论意思是,当不需要处理鼠标事件或不需要像_IsMouseOver_和...这样的属性时,是否有一种提高性能的方法? – Ramin
添加了一个链接到我发现的文章与一些例子。也检查出user1795804s链接。我认为这可能是现在最好的 –
你说...可视化我假设也许你的意思是虚拟化?如果是这样,那么你可能会或可能不知道这个网站:http://msdn.microsoft.com/en-us/library/cc716879.aspx
除了虚拟化,他们还谈论延期滚动。我希望这有帮助。
顺便说一句,你可能会有多少物品? – Killingsworth
感谢您纠正我。用户决定元素的数量,我想为任何场景做好准备。 – Ramin
我真的不会为此担心。我会启用虚拟化让.NET CLR负责其余部分。 – Killingsworth
我想这些应该可以帮助您:
1. Optimize Layout and Design
2. Optimize Text
所有其他有用的有关性能的链接可以在这里找到:http://msdn.microsoft.com/en-us/library/aa970683.aspx但我认为2上面的链接将在你的情况下工作。
“多少”是多少?内存/性能影响可能不会像你想象的那么重要。如果这是一个半合理的数字,那么快速实现基本测试/ GUI来查看它是否会成为问题可能会更简单。 –