Производительность рендеринга изображений WPF - PullRequest
1 голос
/ 30 августа 2010

У меня есть ListBox, содержащий большое количество элементов управления изображением.Источником каждого изображения является URI на удаленном сервере.Около 20 изображений видны одновременно (панель представляет собой VirtualizingStackPanel), и каждый раз при прокрутке ListBox для визуализации изображений требуется несколько секунд, что приводит к крайне медленной прокрутке.Изображения небольшие (по 5-7 Кбайт) и не требуют изменения размера.

Когда источником является локальный URI, производительность хорошая.Изображения обслуживаются сервером nginx и почти мгновенно отображаются в браузере.

Мой вопрос:

  1. Есть ли лучший способ отобразить эти изображения в WPF?
  2. Если это лучший способ, как мне начать отслеживатьузкое место?

РЕДАКТИРОВАТЬ:

ListBox заполняется путем привязки к коллекции.Это 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>

1 Ответ

0 голосов
/ 30 августа 2010

Попробуйте связать изображения из ObservableCollection, которая возвратит коллекцию ImageSource к изображению внутри ItemTemplate.

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...