当前位置:  开发笔记 > 编程语言 > 正文

在具有超过1000个图像项的WPF ListBox中,缩放图像变慢

如何解决《在具有超过1000个图像项的WPFListBox中,缩放图像变慢》经验,为你挑选了1个好方法。

在开发照片查看器应用程序时遇到了问题.我使用ListBox来显示图像,它包含在ObservableCollection中.我将ListBox的ItemsSource绑定到ObservableCollection.

  
        
  


    
        
    

我还使用滑块绑定ListBox中的Image'height.(滑块的Value也绑定到zoombarmanager.ZoomBarWidth.Width).但我发现如果集合变得更大,例如:包含超过1000个图像,如果我使用滑块来改变iamges的大小,它会变得有点慢.我的问题是.1.为什么变慢?变得它试图缩放每个图像,或者只是因为通知("宽度")被调用超过1000次.2.有没有什么方法可以解决这类问题并加快速度.

PhotoListBoxStyle是这样的:

    
        
        
            
                
                    
                
            
        
    

但是如果我使用上面的Style,我必须在ListBox之外使用ScrollViewer,否则我不知道如何获得平滑的滚动滚动条并且wrappanel似乎没有默认的滚动条.有人帮吗?据说滚动查看器的列表框性能不佳.



1> rudigrobler..:

问题是您的新布局面板是WrapPanel,它不支持虚拟化!可以创建自己的Virtualized WrapPanel ...阅读更多在这里

另请阅读有关实现IScrollInfo等其他问题的更多信息 在此处

我还强烈建议您不要仅仅为了替换布局面板而创建新的控件模板...而是执行以下操作:


   
      
   

这样做的好处是您不需要将列表框包装在滚动查看器中!

[ 更新 ]另请阅读本文章由约什-史密斯!要使WrapPanel包装......您还必须记住禁用水平滚动...


推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有