Если у вас есть список изображений, вы можете поместить панель (StackPanel, WrapPanel и т. Д., В зависимости от желаемого поведения) внутри ListBox. Установите панель для размещения элементов и установите список изображений как ItemsSource. Примерно так:
<ListBox x:Name="_listBox" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" IsItemsHost="true" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
, а затем в коде позади установите _listBox.ItemsSource для вашего списка картинок.
(или вы можете иметь свой список картинок в ObservableCollection и привязать к нему ListBox)
РЕДАКТИРОВАТЬ: что касается миниатюр, вы можете использовать что-то вроде:
BitmapImage Picture = new BitmapImage();
Picture.BeginInit();
Picture.UriSource = ... // your picture
Picture.DecodePixelWidth = ... //how big you want your pic
Picture.EndInit();