У меня есть ListBox, содержащий большое количество элементов управления изображением. Источник каждого изображения установлен на URI на удаленном сервере. Одновременно отображается около 20 изображений (панель - VirtualizingStackPanel), и каждый раз, когда прокручивается ListBox, требуется несколько секунд для рендеринга изображений, что приводит к чрезвычайно медленной прокрутке. Изображения небольшие (по 5-7K каждый), и изменение размера не требуется.Выполнение рендеринга изображений WPF
Когда источником является локальный URI, производительность прекрасна. Изображения подаются сервером nginx и отображаются практически мгновенно в браузере.
Мой вопрос:
- Есть ли лучший способ показать эти изображения в WPF?
- Если это лучший способ, как мне начать отслеживать узкое место?
РЕДАКТИРОВАТЬ:
в окне списка заполняется путем связывания с коллекцией. Это XAML в DataTemplate установлен как ItemTemplate в ListBox в:
<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>
Больше информации необходимо ... как вы заполняете свой ListBox? Явным образом добавляя ListBoxItems или используя привязки? Пожалуйста, разместите XAML в списке –