如何制作真正透明的控件?

Sim*_*mon 5 c# transparency winforms

我需要创建一个只显示轮廓的控件,我需要将它放在显示视频的控件上.如果我使我的控件透明,那么视频会被遮挡,因为透明控件是由其父控件绘制的,而视频不是由控件绘制的; 它使用DirectShow或其他库显示,因此父控件绘制其BackColor.

所以-我可以说没有得到涂控制所有,除非它是不透明的?这样,父控件就不会在视频上绘画.

我知道我可以用四个控件制作边框(或者更多,如果我想要它破了)但是有可能只使用一个控件做我想要的吗?


rslite是对的 - 虽然你甚至不需要像他的例子一样使用PInvoke - Control.Region属性是完全足够的.

rsl*_*ite 4

您可以尝试制作一个内部有孔的区域,并使用 SetWindowRgn 设置控制区域。

这是一个例子(我找不到更好的例子)。这个想法是创建两个区域并从外部区域中减去内部区域。我认为这应该能给你你所需要的。