我在 VS2017 中使用 C#,并有一个 Vlc 控件来播放视频。
我想将视频的某些部分与具有透明度的 PNG 图像重叠。在 VS2017 中,元素对其父元素是透明的。因此,为了使图像对视频透明,我必须将其设置为视频的子级。
但是如果我这样做,图像根本不会显示。视频始终刷新并与图像重叠(即使我在图像中执行恒定的 BringToFront
)。
因此,我将图像的父级更改为表单。现在图像显示了,但通过它的透明度我看到了表单的背景,而不是视频。
目标平台是Windows。有什么解决办法吗?
最佳答案
我在使用 Windows 窗体时也遇到了同样的问题。我相信没有简单的解决方案可以使用另一个控件(例如图片框)并将其设置为透明以便您可以看到其后面的视频。
您可以做的一件事是创建另一个表单,将其设置为 topMost,将其 MDiParent 设置为包含 VLC 控件的表单,并将其 FormBorderStyle 设置为 None。然后将其背景设置为要叠加的图像,并将其不透明度属性设置为 50%。这应该会给你想要的效果,但这需要一些解决方法。
如果可以的话,您应该转向 WPF 作为您的 UI 技术,它应该可以解决这个问题,并允许您用透明度覆盖图片框,该透明度不仅显示其后面的主窗体的背景,而且实际上显示视频。
关于c# - 视频上具有透明度的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356160/