Manages the thumbnails in this document viewer.
This class manages the thumbnail image of the pages in the current LEADDocument set in the document viewer.
The class creates an instance of ImageViewer for viewing the thumbnails. The thumbnail images are loaded in a background thread to keep the application user interface responsive.
The class also handles the user interactions with the thumbnails, such as clicking on a thumbnail to move the view to the specified page.
Otherwise, the following occurs:
A new instance of DocumentViewerThumbnails is created and set in the DocumentViewer.Thumbnails property.
A new instance of the ImageViewer control is created and is added as a child control to DocumentViewerCreateOptions.ThumbnailsContainer. This image viewer will be used to view the thumbnail image of the pages when an LEADDocument is set in the viewer. This control can be accessed by using ImageViewer property of this class. Refer to the property for information on how this ImageViewer is initialized.
The background thread is stopped if it is still loading.
If the new document set is null (the application just closed this document), then no further action is required. If a new document object is set, then the following is performed:
An ImageViewerItem is created for each page in the document. The value of
ImageViewerItem.ImageSize is calculated from the DocumentPage.Size value
of each page and the thumbnail size to maintain the correct aspect ratio. The item's Text is updated with the string
"Page number" and the item is added to the viewer control. The item is "empty" and does not contain image data. This is updated in the
A background thread is created to load the thumbnail images. This is done to keep the application user interface responsive and optimize performance. The thread keeps track of the scroll position in ImageViewer and loads the thumbnails of the items currently visible. The thumbnails are obtained from the document using DocumentPage.GetThumbnailImage. When an image is retrieved, it is set in ImageViewerItem.Image. This is repeated till the images for all thumbnail are obtained. The value of IsLoading can be used to determine whether the background thread is still loading thumbnails.
DocumentViewerThumbnails handles the following:
When the user clicks on the thumbnail image of a page, DocumentViewer.GotoPage is called to move the view to the specific page.
If annotations is used, then the container for each page is rendered on the corresponding thumbnail item and are updated live as the user modifies the annotation objects. This performed using ImageViewer.PostRenderItem.
For an example, refer to Using the LEADTOOLS Document Viewer.