Occurs when the virtualizer has an item ready to be rendered.
public event EventHandler<ImageViewerVirtualizerEventArgs> VirtualizeItemReady public:event EventHandler<Leadtools::Controls::ImageViewerVirtualizerEventArgs^>^ VirtualizeItemReady
This event is raised through Virtualizer after LoadItem returns the image data of an item. The viewer will automatically invalidate the item area so it can be re-rendered and the place holder replaced with the actual image data.
You can use subscribe to this event to perform the following:
Track when an image data of an item is ready for debugging or logging purposes.
Replace the default implementation described above. Set the value of ImageViewerVirtualizerEventArgs.IsHandled to true to stop the viewer from invalidated the area of the item to be re-rendered.
using Leadtools;using Leadtools.Controls;using Leadtools.Codecs;using Leadtools.Drawing;public ImageViewerForm _form = new ImageViewerForm();public ImageViewer _imageViewer;public void ImageViewerVirtualizerExample(){// Get the input file namestring _imageFileName = imageFileName;// Get the ImageViewer control from the form_imageViewer = _form.ImageViewer;// Set to vertical view layout_imageViewer.ViewLayout = new ImageViewerVerticalViewLayout();// Add pan zoom interactive mode_imageViewer.InteractiveModes.Add(new ImageViewerPanZoomInteractiveMode());// Add empty items, each one with the correct size but with no image data// The virtualizer will take care of loading the pages and rendering themusing (RasterCodecs codecs = new RasterCodecs()){int pageCount;LeadSize pageSize;LeadSizeD pageResolution;using (CodecsImageInfo info = codecs.GetInformation(_imageFileName, true)){pageCount = info.TotalPages;pageSize = LeadSize.Create(info.Width, info.Height);pageResolution = LeadSizeD.Create(info.XResolution, info.YResolution);}_imageViewer.BeginUpdate();for (int page = 1; page <= pageCount; page++){ImageViewerItem item = new ImageViewerItem();item.ImageSize = pageSize;item.Resolution = pageResolution;_imageViewer.Items.Add(item);}_imageViewer.EndUpdate();// Set the virtualizer to start loading the data into the empty items_imageViewer.Virtualizer = new MyVirtualizer(_imageFileName);// Hook to the VirtualizeItemReady to log each item as its image data is loaded_imageViewer.VirtualizeItemReady += (Object sender, ImageViewerVirtualizerEventArgs e) =>{System.Diagnostics.Debug.WriteLine("Image data for page " + (e.Item.RowIndex + 1) + " is ready");};}}// Custom Virtualizerpublic class MyVirtualizer : ImageViewerVirtualizer{private string _imageFileName;public MyVirtualizer(string imageFileName) : base(){_imageFileName = imageFileName;// Load 4 items at a timethis.MaximumItems = 4;}protected override object LoadItem(ImageViewerItem item){// Load a page, the page number is the item index, but it// could be anything in the application, for example// using ImageViewerItem.Tag to store the necessary data to identity this itemint pageNumber = this.ImageViewer.Items.IndexOf(item);using (RasterCodecs codecs = new RasterCodecs()){return codecs.Load(_imageFileName, pageNumber);}}protected override void SaveItem(ImageViewerItem item, object data){// Nothing to do in this application, just log it.// If save is required, then this is the place to do itint pageNumber = this.ImageViewer.Items.IndexOf(item);System.Diagnostics.Debug.WriteLine("SaveItem for page " + pageNumber + " is called");}protected override void DeleteItem(ImageViewerItem item, object data){// Dispose the imageRasterImage image = data as RasterImage;if (image != null)image.Dispose();}protected override void RenderItemPlaceholder(ImageViewerRenderEventArgs e){// Render the placeholder for this pageint pageNumber = this.ImageViewer.Items.IndexOf(e.Item) + 1;LeadMatrix transform = this.ImageViewer.GetItemImageTransform(e.Item);Graphics graphics = e.PaintEventArgs.Graphics;// Render the message at 0,0 in this item transformationLeadPointD pt = LeadPointD.Create(0, 0);pt = transform.Transform(pt);string message = string.Format("Loading page {0}...", pageNumber);graphics.DrawString(message, this.ImageViewer.Font, Brushes.Black, (float)pt.X, (float)pt.Y);}}
| Parameter | Type | Description |
|---|---|---|
| sender | object | The source of the event. |
| e | ImageViewerVirtualizerEventArgs | The event data. |
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
