Ejemplo n.º 1
0
    /// <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);
    }
Ejemplo n.º 2
0
    /// <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);
    }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
 public void Create(SysImageListSize size)
 {
     m_ImageList = new SysImageList(size);
 }