2010-08-30 47 views
1

我有一个包含大量图像控件的ListBox。每个图像的来源都设置为远程服务器上的URI。一次可以看到大约20个图像(面板是VirtualizingStackPanel),每次滚动ListBox时,都需要几秒钟来渲染图像,从而导致滚动非常缓慢。图像很小(每个5-7K),不涉及调整大小。WPF图像渲染的性能

当Source是本地URI时,性能很好。 图像由nginx服务器提供,几乎立即在浏览器中呈现。

我的问题是:

  1. 有没有更好的方式来显示在WPF这些图片?
  2. 如果这是最好的方法,我应该如何开始追踪瓶颈?

编辑:

列表框被结合到集合填充。这是DataTemplate中的XAML设定ListBox的ItemTemplate:它

<ListBoxItem> 
    <StackPanel> 
     <TextBlock Text="{Binding Path=Title}" /> 
     <Image Width="50" Margin="0"> 
      <Image.Source> 
       <BitmapImage UriSource="{Binding Path=ImageUri}" DecodePixelWidth="50" /> 
      </Image.Source> 
     </Image>        
    </StackPanel> 
</ListBoxItem> 
+0

更多信息是需要的......你如何填写你的ListBox?通过显式添加ListBoxItems,或使用绑定?请发布列表框的XAML – 2010-08-30 13:15:59

回答

0

尝试从绑定的的ObservableCollection图像,这将在ImageSource的集合返回到的ItemTemplate内的图像。

HTH