c# - 视频上具有透明度的图像

标签 c# winforms visual-studio libvlc

我在 VS2017 中使用 C#,并有一个 Vlc 控件来播放视频。

我想将视频的某些部分与具有透明度的 PNG 图像重叠。在 VS2017 中,元素对其父元素是透明的。因此,为了使图像对视频透明,我必须将其设置为视频的子级。

但是如果我这样做,图像根本不会显示。视频始终刷新并与图像重叠(即使我在图像中执行恒定的 BringToFront)。

因此,我将图像的父级更改为表单。现在图像显示了,但通过它的透明度我看到了表单的背景,而不是视频。

目标平台是Windows。有什么解决办法吗?

最佳答案

我在使用 Windows 窗体时也遇到了同样的问题。我相信没有简单的解决方案可以使用另一个控件(例如图片框)并将其设置为透明以便您可以看到其后面的视频。

您可以做的一件事是创建另一个表单,将其设置为 topMost,将其 MDiParent 设置为包含 VLC 控件的表单,并将其 FormBorderStyle 设置为 None。然后将其背景设置为要叠加的图像,并将其不透明度属性设置为 50%。这应该会给你想要的效果,但这需要一些解决方法。

如果可以的话,您应该转向 WPF 作为您的 UI 技术,它应该可以解决这个问题,并允许您用透明度覆盖图片框,该透明度不仅显示其后面的主窗体的背景,而且实际上显示视频。

关于c# - 视频上具有透明度的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356160/

相关文章:

c# - 为什么我的图片框即使显示图像也是空的?

visual-studio - 如何在 Visual Studio 选项中禁用设计模式

c# - 用LINQ查询基本问题

c# - .NET Core 是否支持 COM?

c# - 将自身类引用传递给子类

c# - 在 View 模型中使用 Caliburn 的 conductor<object> 时窗口标题被覆盖

visual-studio - Visual Studio 不会调试到引用的 DLL(来自同一解决方案)

c# - 如何将参数传递给 C# 中的直通查询?

c# - 从数组创建位图对象

winforms - VS2012 Winform设计器错误