ImageList

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



. Net Windows Forms in a Nutshell
.NET Windows Forms in a Nutshell
ISBN: 0596003382
EAN: 2147483647
Year: 2002
Pages: 794

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net