如何显示所有窗口上方的半透明窗口?

如何显示所有窗口上方的半透明窗口? 并加载一些信息在这个窗口中:image / text / button? 我需要在Windows / Linux(或至less是Windows)的所有桌面表中显示一些半透明区域,并在该地区的中心,我需要显示一些文字的图像。 但是,所有这一切都不能把重点放在当前的工作应用上。 它会被自动隐藏。 请看图像:正常的窗户和我想要做的半透明的窗户。 谢谢。 在这里输入图像说明 在这里输入图像说明

Solutions Collecting From Web of "如何显示所有窗口上方的半透明窗口?"

在C#中,这是你所需要的代码:

注意:它没有专注于启动,并且在点击时没有钢铁焦点。

public static class ExtendedWindowStyles { public static readonly Int32 WS_EX_ACCEPTFILES = 0x00000010, WS_EX_APPWINDOW = 0x00040000, WS_EX_CLIENTEDGE = 0x00000200, WS_EX_COMPOSITED = 0x02000000, WS_EX_CONTEXTHELP = 0x00000400, WS_EX_CONTROLPARENT = 0x00010000, WS_EX_DLGMODALFRAME = 0x00000001, WS_EX_LAYERED = 0x00080000, WS_EX_LAYOUTRTL = 0x00400000, WS_EX_LEFT = 0x00000000, WS_EX_LEFTSCROLLBAR = 0x00004000, WS_EX_LTRREADING = 0x00000000, WS_EX_MDICHILD = 0x00000040, WS_EX_NOACTIVATE = 0x08000000, WS_EX_NOINHERITLAYOUT = 0x00100000, WS_EX_NOPARENTNOTIFY = 0x00000004, WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE, WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST, WS_EX_RIGHT = 0x00001000, WS_EX_RIGHTSCROLLBAR = 0x00000000, WS_EX_RTLREADING = 0x00002000, WS_EX_STATICEDGE = 0x00020000, WS_EX_TOOLWINDOW = 0x00000080, WS_EX_TOPMOST = 0x00000008, WS_EX_TRANSPARENT = 0x00000020, WS_EX_WINDOWEDGE = 0x00000100; } public partial class Form1 : Form { public Form1() { InitializeComponent(); this.TopMost = true; } protected override bool ShowWithoutActivation { get { return true; } } protected override CreateParams CreateParams { get { var currentParameters = base.CreateParams; currentParameters.ExStyle |= (int)(ExtendedWindowStyles.WS_EX_NOACTIVATE | ExtendedWindowStyles.WS_EX_TOOLWINDOW); return currentParameters; } } private void Form1_Load(object sender, EventArgs e) { this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.ClientSize = Screen.PrimaryScreen.Bounds.Size; this.Left = 0; this.Top = 0; this.Opacity = 0.5; } } 

把你想要的任何附加控件放在你的表单上(图像,标签等等)。

你只需要通过使用form.ShowDialog();从你的应用程序代码弹出这个表单。 如果您想从任何地方弹出此表单,请将其设置为可执行文件并在需要时运行。