关于WPF的ComboBox中Items太多而导致加载过慢的问题

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于WPF的ComboBox中Items太多而导致加载过慢的问题相关的知识,希望对你有一定的参考价值。

原文:关于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>
 
然后速度就很快了哈,与仅仅加载少量项目速度一样快,因为其只绘制了当前被显示的项。
 

以上是关于关于WPF的ComboBox中Items太多而导致加载过慢的问题的主要内容,如果未能解决你的问题,请参考以下文章

wpf里combobox怎么取数据

WPF DataGrid ComboBox 导致 InvalidOperationException

WPF DataGrid ComboBox 导致 InvalidOperationException

MaterialDesign ComboBox 箭头调整大小和更改颜色 WPF

C# WPF 如何向combobox控件添加类型为comboboxitem的项?

winform 中如何把combobox中的列手动隐藏 是用手动语句的隐藏