/// <summary> /// Associates a SysImageList with a TreeView control /// </summary> /// <param name="treeView">TreeView control to associated ImageList with</param> /// <param name="sysImageList">System Image List to associate</param> /// <param name="forStateImages">Whether to add ImageList as StateImageList</param> public static void SetTreeViewImageList(TreeView treeView, SysImageList sysImageList, bool forStateImages) { IntPtr wParam = (IntPtr)TVSIL_NORMAL; if (forStateImages) { wParam = (IntPtr)TVSIL_STATE; } SendMessage(treeView.Handle, TVM_SETIMAGELIST, wParam, sysImageList.Handle); }
/// <summary> /// Associates a SysImageList with a ListView control /// </summary> /// <param name="listView">ListView control to associate ImageList with</param> /// <param name="sysImageList">System Image List to associate</param> /// <param name="forStateImages">Whether to add ImageList as StateImageList</param> public static void SetListViewImageList(ListView listView, SysImageList sysImageList, bool forStateImages) { IntPtr wParam = (IntPtr)LVSIL_NORMAL; if (sysImageList.ImageListSize == SysImageListSize.smallIcons) { wParam = (IntPtr)LVSIL_SMALL; } if (forStateImages) { wParam = (IntPtr)LVSIL_STATE; } IntPtr handle = listView.Handle; SendMessage(listView.Handle, LVM_SETIMAGELIST, wParam, sysImageList.Handle); }
public static Bitmap GetJumboLargeThumbnail(string fileName) { Bitmap result; if (Environment.OSVersion.Version.Major >= 6) { try { SysImageList sysImageList = new SysImageList(SysImageListSize.SHIL_JUMBO); Bitmap bitmap = sysImageList.Icon(sysImageList.IconIndex(fileName, true)).ToBitmap(); if (bitmap.GetPixel((int)((double)bitmap.Width / 1.5), (int)((double)bitmap.Height / 1.5)).ToArgb() != 0 && bitmap.GetPixel(bitmap.Width / 2, bitmap.Height / 2).ToArgb() != 0 && bitmap.GetPixel(bitmap.Width / 3, bitmap.Height / 3).ToArgb() != 0 && bitmap.GetPixel(bitmap.Width / 4, bitmap.Height / 4).ToArgb() != 0) { result = bitmap; return(result); } SysImageList sysImageList2 = new SysImageList(SysImageListSize.extraLargeIcons); Bitmap bitmap2 = sysImageList2.Icon(sysImageList2.IconIndex(fileName, true)).ToBitmap(); result = bitmap2; return(result); } catch (Exception) { result = null; return(result); } } if (Environment.OSVersion.Version.Major >= 5) { try { SysImageList sysImageList2 = new SysImageList(SysImageListSize.extraLargeIcons); result = sysImageList2.Icon(sysImageList2.IconIndex(fileName, true)).ToBitmap(); return(result); } catch (Exception) { result = null; return(result); } } result = null; return(result); }
void AddImage2(ListViewItem item) { int imageSize = largeimagelist.ImageSize.Width; Bitmap bmp = ZXStudio.Properties.Resources.up_folder_icon_54527; if (largeimagelist.Images.IndexOfKey(item.Name) < 0) { switch (imageSize) { case 16: sysimagelist = new SysImageList(SysImageListSize.smallIcons); break; case 48: sysimagelist = new SysImageList(SysImageListSize.largeIcons); break; case 96: sysimagelist = new SysImageList(SysImageListSize.extraLargeIcons); break; case 256: sysimagelist = new SysImageList(SysImageListSize.JumboIcons); break; } LargeImageList.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(bmp, System.Drawing.Imaging.PixelFormat.Format32bppArgb)); smallimagelist.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(bmp, System.Drawing.Imaging.PixelFormat.Format32bppArgb)); item.ImageIndex = LargeImageList.Images.Count - 1; } else { smallimagelist.Images.Add(item.Name, Thumbnail.CentreImage(bmp, smallimagelist.ImageSize.Width, smallimagelist.ImageSize.Height)); if ((bmp.Width != imageSize && bmp.Height != imageSize))// && pidl.PhysicalPath != "") { bmp = Thumbnail.CentreImage(bmp, imageSize, imageSize); } else { if (bmp.Width != imageSize || bmp.Height != imageSize) { bmp = Thumbnail.ScaleImage(bmp, imageSize, imageSize); } } //Thumbnail.SaveThumb(pidl.Pidl, bmp); largeimagelist.Images.Add(item.Name, bmp); } item.ImageIndex = largeimagelist.Images.Count - 1; }
void AddImage(IntPtr himage, PIDL pidl, ListViewItem item) { int imageSize = largeimagelist.ImageSize.Width; Bitmap bmp = null; //if (thumbDB.HasThumbnail(System.IO.Path.GetFileName(pidl.PhysicalPath))) //{ // using (Image img = thumbDB.GetThumbnailImage(System.IO.Path.GetFileName(pidl.PhysicalPath))) // { // largeimagelist.Images.Add(item.Name, Thumbnail.ScaleImage((Bitmap)img, imageSize, imageSize)); // item.ImageIndex = largeimagelist.Images.Count - 1; // return; // } //} try { if (largeimagelist.Images.IndexOfKey(item.Name) < 0) { if (himage == IntPtr.Zero) { switch (imageSize) { case 16: sysimagelist = new SysImageList(SysImageListSize.smallIcons); break; case 48: sysimagelist = new SysImageList(SysImageListSize.largeIcons); break; case 96: sysimagelist = new SysImageList(SysImageListSize.extraLargeIcons); break; case 256: sysimagelist = new SysImageList(SysImageListSize.JumboIcons); break; } int index = sysimagelist.IconIndex(pidl.Pidl); LargeImageList.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(sysimagelist.Icon(index).ToBitmap(), System.Drawing.Imaging.PixelFormat.Format32bppArgb)); smallimagelist.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(sysimagelist.Icon(index).ToBitmap(), System.Drawing.Imaging.PixelFormat.Format32bppArgb)); item.ImageIndex = LargeImageList.Images.Count - 1; } else { //bmp = Thumbnail.GetCachedImage(pidl.Pidl, imageSize); //if (bmp == null) { bmp = Thumbnail.GetBitmapFromHBitmap(himage); { smallimagelist.Images.Add(item.Name, Thumbnail.CentreImage(bmp, smallimagelist.ImageSize.Width, smallimagelist.ImageSize.Height)); if ((bmp.Width != imageSize && bmp.Height != imageSize))// && pidl.PhysicalPath != "") { bmp = Thumbnail.CentreImage(bmp, imageSize, imageSize); } else { if (bmp.Width != imageSize || bmp.Height != imageSize) { bmp = Thumbnail.ScaleImage(bmp, imageSize, imageSize); } } } //Thumbnail.SaveThumb(pidl.Pidl, bmp); } largeimagelist.Images.Add(item.Name, bmp); item.ImageIndex = largeimagelist.Images.Count - 1; } return; } item.ImageIndex = largeimagelist.Images.IndexOfKey(item.Name); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (bmp != null) { bmp.Dispose(); } Thumbnail.DeleteObject(himage); } }
public void Create(SysImageListSize size) { m_ImageList = new SysImageList(size); }