private void AddImageToBrowser(ImageBrowserPreview io) { this.listImages.Items.Add(io); }
private void ThreadPopulateImageBrowser(Object pathObject) { Monitor.Enter(imageBrowserLock); string path = pathObject.ToString(); System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path); string[] filters = { "*.jpg", "*.jpeg", "*.png", "*.bmp" }; for (int i = 0; i < filters.Length; i++) { System.IO.FileInfo[] files = dir.GetFiles(filters[i]); foreach (System.IO.FileInfo file in files) { ImageBrowserPreview io = new ImageBrowserPreview(); io.FilePath = file.FullName; BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.DecodePixelWidth = 80; bi.CacheOption = BitmapCacheOption.OnLoad; bi.UriSource = new Uri(file.FullName); bi.EndInit(); bi.Freeze(); io.Thumbnail = bi; if (stopImageBrowserPopulation == true) { Monitor.Exit(imageBrowserLock); return; } AddImageToBrowserHandler addImageHandler = new AddImageToBrowserHandler(AddImageToBrowser); this.Dispatcher.BeginInvoke(addImageHandler, io); } } Monitor.Exit(imageBrowserLock); }