看了网上很多将PictureBox.Image的图片背景设置成透明的方法,大多数也都尝试了.
如使用透明Gif图片、Bitmap.MakeTransparent、BackColor=clTransparent等等。
但是总是发现:当图片下层的控件变化的时候,图片还是保持原来的样子,也就是说,这类透明的方法只是把图片背景用当时设置时的底色绘了一遍,并不是真正的透明。
不知大家有没有碰到这样的问题?应该如何解决呢?谢谢。
另:我的这个PictureBox以及背景是在一个自定义控件中的,不知跟这个有没有关系?
如使用透明Gif图片、Bitmap.MakeTransparent、BackColor=clTransparent等等。
但是总是发现:当图片下层的控件变化的时候,图片还是保持原来的样子,也就是说,这类透明的方法只是把图片背景用当时设置时的底色绘了一遍,并不是真正的透明。
不知大家有没有碰到这样的问题?应该如何解决呢?谢谢。
另:我的这个PictureBox以及背景是在一个自定义控件中的,不知跟这个有没有关系?
在Delphi中这个背景透明根本不是问题的,怎么到了C#里这么难弄?
2003我是这样做的。
第一,图片处理成透明的(自己不做,叫别人做的)
第二,Panel设为透明背景。
第三,PictureBox设为透明背景。
第四,PictureBox的Image设为处理好的前景图片。
应该可以做到。
除了窗体,其它的容器背景都设为透明。
((Bitmap)this.pictureBox1.Image).MakeTransparent(Color.White);
this.pictureBox1.BackColor = Color.Transparent;
我的图片所在Panel的父容器是一个自定义的控件,而自定义控件的背景色无法设为透明....
to wfhlx1:
你所说的就是我一开始列出来的方法之一,如果你变换该PictureBox背后的控件,会发现"透明"区域没有刷新....
这是不是.net的一个Bug呢?