Посмотрите на альбом и список в PhotoSuru , одном из примеров приложений Microsoft WPF. У них есть несколько разных экранов просмотра миниатюр, которые загружаются довольно быстро (все изображения загружаются асинхронно, и загружаются только необходимые изображения). И есть полный исходный код, чтобы вы могли начать, если это то, что вы ищете.
Это не совсем похоже на Picasa (они решили только показывать полные ряды фотографий вместо частично покрытого ряда, как Picasa), но реализовали собственную виртуализирующую панель IScrollInfo (достаточно просто, и у Бен Констебля есть замечательная серия постов на нем ), вы сможете получить желаемую производительность и желаемое поведение.
Последнее замечание. Возможно, вы уже делаете это (хранятся ли ваши изображения как изображения размером 256x256 пикселей?), Но всякий раз, когда вы пытаетесь отобразить миниатюры изображений, вам не следует загружать полное изображение. Чтение 2 МБ + файлов изображений с диска только для рендеринга целых экранных миниатюр размером 256x256 пикселей всегда имеет больший выигрыш в производительности, чем чтение небольшого уменьшенного изображения соответствующего размера. Если вы можете, кэшируйте миниатюры где-нибудь (как это делают Windows и Picasa) или, по крайней мере, попробуйте использовать встроенные миниатюры в любых файлах JPEG, с которыми вы сталкиваетесь.