关于WPF的ComboBox中Items太多而导致加载过慢的问题
2008-05-21 10:12
597 查看
【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
周银辉
我的一个同事在加载字体列表时遇到了一个让人崩溃的问题:由于系统字体可能较多(可能有好几百项),导致使用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太多而导致加载过慢的问题
- 关于WPF的ComboBox中Items太多而导致加载过慢的问题(转载)
- 关于WPF加载WinForm界面,WinForm界面显示错位、按钮大小变大的问题
- 关于ListView异步加载图片导致图片显示混乱以及ListView效率问题探讨
- 关于android text view 加载第三方字库导致内存泄漏问题
- wpf ComboBox 绑定 以及绑定项过多加载过慢问题
- 关于加载fonts.useso.com导致页面加载过慢问题
- 关于ViewPager加载多个导致OOM内存溢出的问题。
- 关于VC6.0打开庞大工程时,ClassView加载不出来直接卡住或导致Workspace空白的问题
- 关于android webview 图片使用同一个src导致只加载第一张的问题
- 关于在测试类中,懒加载问题导致加载了主类之后,在测试类中引用集合类出现错误的问题
- 关于fonts.useso.com导致的页面加载过慢问题
- 关于自定义对话框加入自定义ListView和getView多次加载导致EditText获取文本的问题
- 关于fonts.useso.com导致的页面加载过慢,有时是超时的问题。
- 关于jquey ajax请求导致文档加载问题!
- [ javascript ] 关于jquey ajax请求导致文档加载问题!
- 关于使用WinHtmlEditor控件获得html代码加载到wpf中webbrowser控件上乱码问题
- 关于Android4.4以下版本Webview执行LoadUrl加载js导致键盘隐藏的问题(富文本编辑器)
- 关于C# wpf Frame 一次加载多个Page 的问题
- 构造函数的职责 -- 关于全局变量的构造函数里执行太多复杂操作导致的问题