我的窗体里面有个panel,在panel上播放摄像头采集的视频浏览,在panel上有一个picturebox控件,控件的图片是部分透明的gif,当我设置图片透明时,图片透明的地方直接成了panel的底色,而不是视频。现在的情况就是如果设置透明,透明部分就直接被系统填充了panel的背景色,而我要的是透明的部分是显示背后panel上播放的视频。哪位高手能帮忙想想办法。我本来想直接这个picturebox另起一个窗体叠上去,但是透明的问题解决了却出来另一个问题,就是因为背后的窗体在放视频,这个叠上去放图片的窗体会闪烁。

解决方案 »

  1.   

    另外说明下,系统是c#的winform桌面程序
      

  2.   

      2种透明的样式:
       第1中. 你调picture 的backColor属性...他是一个选项卡形式的  选Web 第1个 Transparency...
        这种 只有你的图片 是透明的.  而窗体 不是透明的...
       
       第2种:  你的窗体也是透明的.. 也就是说你 点窗体的透明的地方可以点到后面..就是你的操作系统.
         你窗体 有个属性..TransparentKey  你把他选个颜色..
       想让那个地方透明. 就把那个地方的 backColor设置成TransparentKey 的颜色.
      

  3.   

     补充下..  正常我们用的都是规则矩形窗体..  但是有许多winform 都不是矩形的 
       就是用第2种方法实现的.
      

  4.   

    做镜框相框的
    http://download.csdn.net/down/412460/a137188467
      

  5.   

    cstester,你的方法我早试过了,透明部分我是需要显示背后的视频的,而不是透明后显示窗体或者是panel的背景色。
    视频是会不断变化的
      

  6.   

    自己解决了,计算了图片非透明区域的region,然后设置picturebox的region,重画控件