Recently I was tasked with creating an image viewer that held thumbnails of lots of images. The problem was that I had to at least partially show all the thumbnail images that were all held in an ObservableCollection. Further, because the images were held in an ObservableCollection of data, I could never know how many images would be in the collection at any one time. For this reason, it was an obvious choice to put the thumbnails into a StackPanel and let the StackPanel arrange its children.