Example #1
0
        private void RecreateThumbnail()
        {
            lock (MediaProvider)
            {
                fileList = this.MediaProvider.GetChildEntries(folderBox.SelectedItem.ToString());

                var buttonList = new List <Button>();
                try
                {
                    foreach (var file in fileList)
                    {
                        var stream = MediaProvider.OpenEntry(file);

                        var button = new Button();

                        button.Text      = file.Substring(file.LastIndexOf('\\') + 1);
                        button.BackColor = SystemColors.ControlDark;

                        button.Size      = new Size(200, 200);
                        button.TextAlign = ContentAlignment.BottomCenter;
                        button.Name      = file;
                        button.Click    += ImageButton_Click;

                        stream.Close();

                        buttonList.Add(button);
                    }
                }
                catch (NotSupportedException err)
                {
                    MessageBox.Show(err.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    buttonList.Clear();
                }
                finally
                {
                    thmbnailPanel.Controls.Clear();
                    thmbnailPanel.Controls.AddRange(buttonList.ToArray());
                    imageList.Clear();

                    thumbnailBackgroundWorker.RunWorkerAsync(folderBox.SelectedItem.ToString());
                }
            }
        }
Example #2
0
        private void thumbnailBackgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            var entry = e.Argument as string;

            try
            {
                for (int i = 0; i < fileList.Length; i++)
                {
                    var file = fileList[i];
                    if (worker.CancellationPending == true)
                    {
                        e.Cancel = true;
                        break;
                    }

                    lock (MediaProvider)
                    {
                        var stream = MediaProvider.OpenEntry(file);

                        var image = CreateThumbnail(Image.FromStream(stream), 200, 200);

                        stream.Close();
                        imageList.Add(image);
                    }
                    worker.ReportProgress((i * 100) / fileList.Length);
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
            }
        }