這是場景:在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來查看它是否會成爲問題可能會更簡單。 –