c# - 在叠加视频(VLC Winform)上绘制透明控件(文本)

标签 c# .net winforms transparency vlc

这种题是asked很多次。
但出于某种原因,它没有按预期工作!
我正在使用 vlc在 Panel(Control) 中,然后在 vlc 控件顶部放置一个标签。 我希望标签的背景是透明的。我使用了下面的代码

  label1.Parent = vlcControl1;
  label1.backColor = Color.Transparent;

这里的问题是标签显示,直到 vlc 不播放任何媒体。
一旦我播放媒体文件,标签就会隐藏。
我也试过

  label1.bringToFront();
  label1.Visible=true;

如果我停止 vlc 播放视频文件 vlcControl1.Stop(); 标签将可见。

最佳答案

Windows Forms 版本存在空域问题,我不知道可用的解决方法。

对于 WPF 版本,这是 VlcDotNet 最新版本的一个已知问题:Wpf VlcControl seems to ignore ZIndexVlcControl is always on the top of my window这是因为 WPF VLC 控件是一个显示 Windows 窗体控件的 HwndHost。

已知的替代方案应该是,使用 WPF 和:

  1. 使用旧版本的 VlcDotNet(1.2.0.0 版本没有 空域问题)
  2. 使用带有纯 WPF 的替代控件 实现,例如 Meta.Vlc
  3. 实现解决方法 空域问题,例如AirspacePopup

关于c# - 在叠加视频(VLC Winform)上绘制透明控件(文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40704940/

相关文章:

c# - 类型转换 Excel 单元格

c# - 将数组转换为数组数组的数组

c# - 插入后 telerik radgrid 选择项目

c# - 如何发出代码并将其注入(inject)加载的程序集中?

c# - 将 img 从 url 加载到 WinForms 中的 DataGridView

c# - Azure B2C。使用 Azure 门户编辑自定义属性

c# - 如何使用 C# 读取二进制文件?

c# - 在 .NET 中,终止进程后非后台线程真的会继续运行吗

c# - 在显示另一个窗体的同时最小化和恢复一个窗体

c# - C# Windows 应用程序中的两个 UI 线程