gpt4 book ai didi

c# - 视频顶部具有透明背景的控件

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:21 24 4
gpt4 key购买 nike

我正在开发一个项目,它需要看起来像所附的屏幕截图。

我有一个 WinForm,上面有 VideoPanelCtl 面板。面板的句柄被传递到实例化的 VLC 组件/控件,导致视频显示在该面板上。

我还尝试将另一个面板放在视频面板上端的 VideoPanelCtl 顶部并使其透明,并且位于此顶部面板顶部的控件也应具有透明背景,如所附屏幕截图所示。然而,尽管我使用了一个从面板控件派生的带有 bkg 重绘的自定义面板(见下面的代码),但我的方法并没有奏效。我在这样的代码中创建的面板只是被视频遮住了......如果我把它上面的控件(按钮和标签)它们可能也会被遮挡...

我从 WinForm 的窗体加载处理程序中调用它:

private void InitTopPanel()
{
mExtendedPanelTop = new ExtendedPanel();
mExtendedPanelTop.Opacity = 50; // totally transparent

videoPanelCtl.Controls.Add(mExtendedPanelTop);
mExtendedPanelTop.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
mExtendedPanelTop.Dock = System.Windows.Forms.DockStyle.Top;
mExtendedPanelTop.Location = new System.Drawing.Point(0, 0);
mExtendedPanelTop.Name = "ExtendedPanelTop";
mExtendedPanelTop.Size = new System.Drawing.Size(1090, 48);
mExtendedPanelTop.TabIndex = 0;
//mExtendedPanelTop.Paint += mExtendedPanelTop_Paint;
}

public class ExtendedPanel : Panel
{
private const int WS_EX_TRANSPARENT = 0x20;
public ExtendedPanel()
{
SetStyle(ControlStyles.Opaque, true);
}

private int opacity = 50;
//[DefaultValue(50)]
public int Opacity
{
get
{
return this.opacity;
}
set
{
if (value < 0 || value > 100)
throw new ArgumentException("value must be between 0 and 100");
this.opacity = value;
}
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle = cp.ExStyle | WS_EX_TRANSPARENT;
return cp;
}
}
protected override void OnPaint(PaintEventArgs e)
{
using (var brush = new SolidBrush(Color.FromArgb(this.opacity * 255 / 100, this.BackColor)))
{
e.Graphics.FillRectangle(brush, this.ClientRectangle);
}
base.OnPaint(e);
}
}
  1. 如何实现位于透明面板上且背景透明的视频顶部的控件?
  2. 如何在带有“视频连接 enter image description here 丢失”文本(红色标签背景)的视频顶部实现半透明标签? (见附件)

最佳答案

我通过使用包含 Canvas 的 WPF 控件和包含 MediaElement 和 Label(或其他控件)的 Canvas 来解决它。然后将 Label 的 ZIndex 设置得更高以引起可见性。因此,我在运行的视频(在 MediaElement 内)上获得可见标签,标签具有透明背景。

关于c# - 视频顶部具有透明背景的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38530583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com