1. 程式人生 > >關於WPF的ComboBox中Items太多而導致加載過慢的問題

關於WPF的ComboBox中Items太多而導致加載過慢的問題

ive html ack 顯示 item 關於 ali 崩潰 color

原文:關於WPF的ComboBox中Items太多而導致加載過慢的問題

【WFP疑難】關於WPF的ComboBox中Items太多而導致加載過慢的問題
周銀輝
我的一個同事在加載字體列表時遇到了一個讓人崩潰的問題:由於系統字體可能較多(可能有好幾百項),導致使用ComboBox顯示字體列表異常緩慢,需要讓人抓狂的3~5秒,這是由於ComboBox在展開列表時繪制了列表中的每一項,為了避免這個問題,我們可以使用VirtualizingStackPanel來代替ComboBox默認的項目面板StackPanel:



<ComboBox x:Name="comboboxFontList"
VerticalAlignment="Top">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
然後速度就很快了哈,與僅僅加載少量項目速度一樣快,因為其只繪制了當前被顯示的項。 關於VirtualizingStackPanel可以參考這裏: http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

關於WPF的ComboBox中Items太多而導致加載過慢的問題