在一個winform的專案中有一個panel,初始加載時會根據本地檔案夾中的圖片生成自定義控制元件加載到panel中,但是檔案夾中的圖片數量已經達到了幾千,全部加載記憶體會爆,所以目前的解決方案是只顯示前32個(32個剛好占滿panel),其余的通過搜索找到,但是這樣會誤導用戶認為只有32個,請問:
我想先根據圖片數量占據panel的位置,開啟panel的滾動條,但是只加載可見的部分資料(即只保留32個圖片生成的控制元件,其他資料暫時不加載),當用戶拖動滾動條時再根據滾動條所在位置加載相應位置的資料,拖出可見區域的資料銷毀掉,請問各位大神有沒有好的解決方案?或者有做過的指點一二,萬分感激!
uj5u.com熱心網友回復:
分頁吧,panel有高度限制,超出65535下面就沒了。如果顯示時加載部磁區域,計算麻煩(比如超出表單部分、區域銜接、滾動條移動到位置等等),
代價太大,費那個腦子劃不來。
原來我也是這么干的,干不下去了,分頁了。
uj5u.com熱心網友回復:
wpf到時沒有限制,控制別溢位。可以嵌入wpf組件System.Windows.Controls.ScrollViewer試一試uj5u.com熱心網友回復:
可以自定義滾動條的最大值,來提示內容數量;并根據滾動位置,來動態顯示影像。下貼10樓有個完整的例子,示例了一百萬個物件的顯示。
【C#大量相同物件winform的性能問題】
https://bbs.csdn.net/topics/370128667
uj5u.com熱心網友回復:
感謝,學習了。
試過,在做大容量列印預覽,載入大量影像,效果沒法用最后還是分頁了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/83768.html
標籤:C#
上一篇:c#未能找到型別或命名空間
