2010-08-30 102 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