Gets or sets the file name of the item.
public string FileName { get; set; }
The file name associated with this RasterImageListItem object. The default value is null (Nothing in VB).
The RasterThumbnailBrowser class uses this property to store the fully qualified file name for the items added as a result of calling RasterThumbnailBrowser.LoadThumbnails
The RasterImageList class does not use this property. However, you can use this property to set and get the file name when items are selected.
using Leadtools.WinForms;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
class MyForm2 : Form
{
RasterImageViewer viewer;
RasterImageList imageList;
RasterCodecs codecs;
public MyForm2()
{
// Set the size of the form
Size = new Size(400, 200);
// Create a new RasterImageList control
imageList = new RasterImageList();
imageList.Dock = DockStyle.Left;
imageList.SelectionMode = RasterImageListSelectionMode.Single;
Controls.Add(imageList);
imageList.BringToFront();
// Add a handler to the SelectedIndexChanged event
imageList.SelectedIndexChanged += new EventHandler(rasterImageList_SelectedIndexChanged);
Splitter splitter = new Splitter();
splitter.Dock = DockStyle.Left;
Controls.Add(splitter);
splitter.BringToFront();
viewer = new RasterImageViewer();
viewer.Dock = DockStyle.Fill;
Controls.Add(viewer);
viewer.BringToFront();
// Now load all our images
codecs = new RasterCodecs();
string folderName = LEAD_VARS.ImagesDir;
string[] files = Directory.GetFiles(folderName, "*.*");
// This is going to be a lengthy operation
// Suspend painting the RasterImageList
imageList.BeginUpdate();
foreach (string fileName in files)
{
// Load the image as a thumbnail
RasterImage image = LoadThumbnail(fileName);
// Only add an item if we loaded the image successfuly
if (image != null)
{
// Create an item
RasterImageListItem item = new RasterImageListItem();
// Setup the item information
item.Image = image;
item.Text = Path.GetFileName(fileName);
item.Page = 1;
// To load this image in original size later
item.FileName = fileName;
// Add the item into RasterImageList
imageList.Items.Add(item);
}
}
imageList.EndUpdate();
}
private void rasterImageList_SelectedIndexChanged(object sender, EventArgs e)
{
// User has selected an item from the RasterImageList control.
// Re-load the item image and show it in original size in the viewer
// Get the selected item(s)
RasterImageListItemCollection selectedItems = imageList.SelectedItems;
if (selectedItems != null && selectedItems.Count == 1)
{
RasterImageListItem item = selectedItems[0];
// Load the image in its original size and set it in the viewer
viewer.Image = codecs.Load(
item.FileName,
0,
CodecsLoadByteOrder.BgrOrGray,
1,
1);
}
}
private RasterImage LoadThumbnail(string fileName)
{
RasterImage image = null;
try
{
// See if we can load this image
CodecsImageInfo info = codecs.GetInformation(fileName, false, 1);
if (info.Format != RasterImageFormat.Unknown)
{
// Yes, calculate the thumbnail size to fit into RasterImageList.ItemImageSize
Rectangle rc = new Rectangle(
0,
0,
imageList.ItemImageSize.Width,
imageList.ItemImageSize.Height);
rc = RasterImageList.GetFixedAspectRatioImageRectangle(info.Width, info.Height, rc);
// Load the thumbnail
image = codecs.Load(
fileName,
rc.Width,
rc.Height,
24,
RasterSizeFlags.Resample,
CodecsLoadByteOrder.BgrOrGray,
1,
1);
}
else
image = null;
}
catch
{
image = null;
}
return image;
}
}
public void RasterImageList_Image()
{
MyForm2 form = new MyForm2();
form.ShowDialog();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}