Used in the RasterThumbnailBrowser.LoadThumbnails to control how the RasterThumbnailBrowser loads the thumbnails.
[FlagsAttribute()]public enum RasterThumbnailBrowserLoadFlags
| Value | Member | Description |
|---|---|---|
| 0x00000000 | None | Default mode. The method will return immediately and the thumbnails are loaded in a background thread. |
| 0x00000001 | Block | The method will not return until all thumbnails are loaded. |
| 0x00000002 | OnlyValidImageFiles | Only valid image files are loaded. Any file that contains data not recognized by the RasterThumbnailBrowser.Codecs object as a valid image file will not be loaded. |
| 0x00000004 | AllDirectories | Load image files in current directory and all subdirectories. If this flag is not set only image files in the current directory will be loaded. |
| 0x00000008 | ExpandMultiPageFile | A RasterImageListItem will be created and added to the RasterThumbnailBrowser for each page found in the image file if it is a multipage file. |
using Leadtools.WinForms;using Leadtools;using Leadtools.Codecs;using Leadtools.Drawing;class MyForm : Form{public RasterThumbnailBrowser theBrowser;public bool cancelOperation; // Informs us if the user canceled the operationpublic Button buttonCancel; // Cancel browse loadingpublic Button buttonBrowse; // Diplays the browse controlpublic ProgressBar progressBar; // shows progress of loading browse imagesvoid buttonBrowse_Click(object sender, EventArgs e){// If we are already loading thumbails, cancel// this operationif (theBrowser.IsLoadingThumbnails)theBrowser.CancelLoadingThumbnails();// Clean all the itemstheBrowser.Items.Clear();// Update the application statebuttonCancel.Enabled = true;progressBar.Value = 0;// And load the new thumbnailscancelOperation = false;string folderPath = LEAD_VARS.ImagesDir;theBrowser.LoadStamp = true;theBrowser.LoadThumbnails(folderPath, "*.*", RasterThumbnailBrowserLoadFlags.Block);theBrowser.Refresh();theBrowser.EnableBrowserWatcher = true;}private void thumbnailBrowser_LoadThumbnail(object sender, RasterThumbnailBrowserLoadThumbnailEventArgs e){// If this is the first iteration, update the progress bar minimum and maximum valuesif (e.Index == 0){progressBar.Minimum = 0;progressBar.Maximum = e.Total - 1;}// Update where we are in the loading operationprogressBar.Value = e.Index;// Check if we need to cancel (due to the user clicking the Cancel button)if (cancelOperation)e.Cancel = true;}private void thumbnailBrowser_AddFile(object sender, RasterThumbnailBrowserAddFileEventArgs e){Console.WriteLine("AddFile: {0} Add: {1}", e.FileName, e.Add);}private void thumbnailBrowser_FinishedLoadingThumbnails(object sender, EventArgs e){buttonCancel.Enabled = false;}private void buttonCancel_Click(object sender, EventArgs e){// The user has clicked the cancel buttonthis.cancelOperation = true;}// Create custom images to use as the "error" and "loading" thumbnails.void CreateErrorThumbnail(){// Get the image sizeSize imageSize = theBrowser.ItemImageSize;// No "loading" thumbnailtheBrowser.LoadingThumbnail = null;// For the "error" thumbnail, create a red X imageRasterColor[] palette = new RasterColor[0];RasterImage image = new RasterImage(RasterMemoryFlags.Conventional,imageSize.Width,imageSize.Height,24,RasterByteOrder.Bgr,RasterViewPerspective.TopLeft,palette,IntPtr.Zero,0);IntPtr hdc = RasterImagePainter.CreateLeadDC(image);Graphics g = Graphics.FromHdc(hdc);g.FillRectangle(Brushes.Magenta, 0, 0, imageSize.Width, imageSize.Height);g.DrawLine(Pens.Red, 0, 0, imageSize.Width, imageSize.Height);g.DrawLine(Pens.Red, imageSize.Width, 0, 0, imageSize.Height);g.Dispose();RasterImagePainter.DeleteLeadDC(hdc);// Make this image transparentimage.Transparent = true;image.TransparentColor = RasterColor.FromKnownColor(RasterKnownColor.Magenta);theBrowser.ErrorThumbnail = image;}public void Cleanup(){buttonBrowse.Click -= new EventHandler(buttonBrowse_Click);buttonCancel.Click -= new EventHandler(buttonCancel_Click);theBrowser.LoadThumbnail -= new EventHandler<RasterThumbnailBrowserLoadThumbnailEventArgs>(thumbnailBrowser_LoadThumbnail);theBrowser.FinishedLoadingThumbnails -= new EventHandler(thumbnailBrowser_FinishedLoadingThumbnails);}public MyForm(){Size = new Size(300, 200);// create the browsertheBrowser = new RasterThumbnailBrowser();theBrowser.Codecs = new RasterCodecs();theBrowser.Dock = DockStyle.Fill;theBrowser.ItemSpacingSize = new Size(10, 10);theBrowser.ThumbnailSizeFlags = RasterSizeFlags.Bicubic;theBrowser.LoadThumbnail += new EventHandler<RasterThumbnailBrowserLoadThumbnailEventArgs>(thumbnailBrowser_LoadThumbnail);theBrowser.FinishedLoadingThumbnails += new EventHandler(thumbnailBrowser_FinishedLoadingThumbnails);theBrowser.AddFile += new EventHandler<RasterThumbnailBrowserAddFileEventArgs>(thumbnailBrowser_AddFile);// Create a thumbnail image to be displayed on errorCreateErrorThumbnail();// add a panelPanel panel = new Panel();panel.Dock = DockStyle.Left;panel.Width = 100;Controls.Add(panel);panel.BringToFront();// add a "browse" buttonbuttonBrowse = new Button();buttonBrowse.Text = "Browse";buttonBrowse.Dock = DockStyle.Top;panel.Controls.Add(buttonBrowse);buttonBrowse.Click += new EventHandler(buttonBrowse_Click);// add a "cancel" buttonbuttonCancel = new Button();buttonCancel.Text = "Cancel";buttonBrowse.Dock = DockStyle.Bottom;panel.Controls.Add(buttonCancel);buttonCancel.Click += new EventHandler(buttonCancel_Click);// add a progress barprogressBar = new ProgressBar();progressBar.Dock = DockStyle.Bottom;Controls.Add(progressBar);Controls.Add(theBrowser);theBrowser.BringToFront();}private void InitializeComponent(){this.SuspendLayout();//// MyForm//this.ClientSize = new System.Drawing.Size(315, 273);this.Name = "MyForm";this.ResumeLayout(false);}}public void RasterThumbnailBrowser_RasterThumbnailBrowser(){MyForm form = new MyForm();form.ShowDialog();form.Cleanup();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";}