c#中两个picturebox叠加在一起, 我想使上面的picturebox2实现透明效果
下面的picturebox1不透明,叠加在上面的为透明的png格式,我现在将picturebox2的backcolor设置为transparent,png的透明部分显示的...
下面的picturebox1不透明,叠加在上面的为透明的png格式,我现在将picturebox2的backcolor设置为transparent,png的透明部分显示的是窗体颜色,仍不是想要的效果。将picturebox2.parent=picturebox1,picturebox就完全看不到了
请教高手解答! 展开
请教高手解答! 展开
3个回答
展开全部
解决方案:
1.最佳方案:使用GID重新构造一张新的图片来实现叠加的效果,缺点只能使用一个PictureBox来显示
2.一般方法:设置窗体的的透明色属性为你的png透明色,this.TransparencyKey = Color.Red;
确定,窗体上所有的改颜色均透明
3.你试试,说不定可以:不透明的设置为picturebox的BackGroundImage,透明的设置成他的Image
1.最佳方案:使用GID重新构造一张新的图片来实现叠加的效果,缺点只能使用一个PictureBox来显示
2.一般方法:设置窗体的的透明色属性为你的png透明色,this.TransparencyKey = Color.Red;
确定,窗体上所有的改颜色均透明
3.你试试,说不定可以:不透明的设置为picturebox的BackGroundImage,透明的设置成他的Image
更多追问追答
追问
多谢!
您的第一种方案我已经实现过了,但在我做的系统里上面透明图片应该是不断变化位置的,这种方案灵活性不够,而且不能对其添加特点事件;
您的一般方法我在form_load中用了this.TransparencyKey = Color.Transparent;但没有效果,png的透明部分仍为窗体颜色,不是透明。不知道您是不是这个意思?
第三种是不行的…
多谢您的关心!
追答
第一种方法,可以实现动态绘制,然后利用委托delegate和event实现自定义事件
第二种办法是不行的,那个好像连窗体都会变得透明。所以还是要用第一种办法
展开全部
使用GID重新构造一张新的图片来实现叠加的效果
追问
多谢关心!
这个我已经做过了,即实现水印的效果,但这种方案在我的系统里面会有其他问题不可用!还是多谢了!
呵呵,已经困扰很久了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样行不行,将backgroungimage设置背景图片,image设置png
追问
谢谢落水神的关心!
我改了以后仍不是透明,只是透明部分即背景成为了下面picturebox的一角的颜色,并没有实现透明效果
还是多谢了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询