将一个图片框放在另一个:VS2008

时间:2014-11-10 01:00:50

标签: vb.net transparency picturebox

希望我能在这里得到一些帮助。 对于VB应用程序,我尝试在visual studio 2008中将一个图片框放在GDI +绘制的图像(或另一个图片框)上,并且图片框包括透明区域,这些区域不透明。

我查看了很多方法,但它们不适合我的情况: 使用GDI绘制背景,对于我的应用程序,我需要一个固定在其上的图片框。 (静止图像也不能被GDI +绘制,因为背景每次都会更新,导致它消失。试图重绘图像,但它会产生难看的闪烁效果)。

当我尝试使用picturebox作为背景,并将其指定为叠加图像的父级以获得透明效果时,上面的图像根本不显示。这是VB代码:

Dim back As PictureBox
Dim silhouetteAs PictureBox
Dim img As Bitmap = New Bitmap(imgPath)
img.MakeTransparent(Color.White)
back = New PictureBox()
silhouette= New PictureBox()
silhouette.Parent = back
silhouette.Size = New Point(width, height)
silhouette.Location = New Point(xpos, ypos)
silhouette.Image = img
silhouette.BackColor = Color.Transparent
back.Parent = MAIN
back.Size = New Point(width, height)
back.Location = New Point(xpos, ypos)
back.BackColor = Color.Blue

背面是背景,而轮廓是顶部图像。 有人可以提供一个例子,说明通过育儿图片盒实现透明度的方式吗?或任何其他解决这种情况的方法?

1 个答案:

答案 0 :(得分:0)

没关系,发现出了什么问题 - 当我指定另一个图片框作为父母时,我没有相对更新叠加图片框的位置。修正将是 添加:

silhouette.location=new point(0,0)

忘了坐标是相对于父坐标而不是表格。