我试了试,把要用的图像先存放到imageList里,如果是gif格式的图像,在imagelist的TransparentColor中设置的透明色在treeview中能够透明,但gif本身透明的地方并不透明。而如果用ico图标,则怎么也弄不出透明的效果。同样的图片存放在同一个imageList中,在treeview中不透明,在pictureBox中就是透明的。请问我应该怎么做啊?其实我是想做成windows资源管理器中的那样,图标本身有透明效果,如果选择 “剪切”,透明度会增加。

解决方案 »

  1.   

    把\images下面所有的文件(都是图片)去掉背景后加入到imagelist:   
        
      string[]   files=System.IO.Directory.GetFiles(Application.StartupPath+"\\Images");   
      foreach(string   file   in   files)   
      {   
      Bitmap   b=new   Bitmap(file);   
      b.MakeTransparent();   
        
      imageList.Images.Add(b);   
      }
      

  2.   

    我用的ico图标本身就透明的。3楼的应该是对bmp的。
      

  3.   

    ^ō^ 直接使用PNG格式的透明图标...
      

  4.   

    试了,不行。
    不管是ico还是PNG,把imagelist的TransparentColor属性设置为黑色后,图标边缘的透明效果可以出来,但图标的整体透明度改变(类似windows资料管理器中选择剪切后),还是不行。
      

  5.   

    但图标的整体透明度改变(类似windows资料管理器中选择剪切后),跟据需要, 设置不同透明度的png文件. 然后再设置到相应TreeView
      

  6.   

    整体透明的图标,在treeview里都是发 黑的。
      

  7.   

    很怀疑Explorer中剪切后是将增加图标透明度,感觉使用两个不同的图标吧
      

  8.   

    只 知道 .GIF和.PNG的可以支持透明
    如果不行。那也不知道了
    关注。
      

  9.   

    在windows的显示属性》外观 里修改窗口背景色后,可以看到剪切后的图标可以透过你选择的背景色,是真透明
      

  10.   

    如果图片本身的背景已经是透明, 不用设置 Imagelist.TransparentColor ...