ImageList | marshal by reference, disposable |
System.Windows.Forms (system.windows.forms.dll) | sealed class |
This System.ComponentModel.Component wraps a Win32
ImageList control. In theory, this is the best way
to manage sets of images for the UI; in practice, there are a few
complications, because it tends to reflect the fact that it is a thin
wrapper over the Win32 common control, rather than a native part of
the .NET Framework.
It offers functions to Draw() a specific image
from the list onto a System.Drawing.Graphics
surface. Unlike the standard GDI+ image classes, support for alpha
channel is limited, unless you are using Windows XP and Common
Controls v6. You can, however, set a
TransparentColor for basic transparency support.
For interop scenarios, you can retrieve the underlying
Handle and determine whether the native list has
actually been created yet with the HandleCreated
property. (The image resources are lazy-allocated the first time they
are needed).
The format of the images can be set and retrieved using the
ImageSize and ColorDepth
properties. The image data itself can be serialized and deserialized
using the ImageStream. Typically, you would be
deserializing the data from system resources, and this is all handled
for you by the design-time environment.
Finally, the actual images in the list can be accessed through the
Images property.
The ImageList control is present because several
of the Control classes that wrap Win32 objects are
a thin veneer over the raw control, and therefore expose the
unmanaged image list functionality. If you want to deal with your own
sets of images, a managed collection class would probably be the way
to go, rather than trying to shoehorn this component into a role for
which it is not designed.
public sealed class ImageList : System.ComponentModel.Component {
// Public Constructors
public ImageList();
public ImageList(System.ComponentModel.IContainer container);
// Public Instance Properties
public ColorDepth ColorDepth{set; get; }
public IntPtr Handle{get; }
public bool HandleCreated{get; }
public ImageCollection Images{get; }
public Size ImageSize{set; get; }
public ImageListStreamer ImageStream{set; get; }
public Color TransparentColor{set; get; }
// Public Instance Methods
public void Draw(System.Drawing.Graphics g, int x, int y, int index);
public void Draw(System.Drawing.Graphics g, int x, int y, int width, int height, int index);
public void Draw(System.Drawing.Graphics g, System.Drawing.Point pt, int index);
public override string ToString(); // overrides System.ComponentModel.Component
// Protected Instance Methods
protected override void Dispose(bool disposing); // overrides System.ComponentModel.Component
// Events
public event EventHandler RecreateHandle;
}
Hierarchy
System.Object
System.MarshalByRefObject
System.ComponentModel.Component(System.ComponentModel.IComponen,
System.IDisposable) ImageList
Returned By
ButtonBase.ImageList,
Label.ImageList,
ListView.{LargeImageList,
SmallImageList,
StateImageList},
ListViewItem.ImageList,
TabControl.ImageList,
ToolBar.ImageList,
TreeView.ImageList
Passed To
ButtonBase.ImageList,
Label.ImageList,
ListView.{LargeImageList,
SmallImageList,
StateImageList},
TabControl.ImageList,
ToolBar.ImageList,
TreeView.ImageList
|