【发布时间】:2014-02-25 21:48:16
【问题描述】:
如何将 Windows 窗体应用程序置于屏幕上的所有内容之上?
在运行全屏游戏时,仅设置 topmost-property 是不够的。
如果有人有旧表单的解决方案,我也会很高兴
我在这个论坛上看到很多帖子说这是不可能的,但我知道这不是因为我见过很多应用程序(fraps、teampeak overlay、xfire 等)可以做到这一点。
【问题讨论】:
-
想象一下,如果两个应用程序同时尝试这样做blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx
-
Fraps 是通过 DirectX/OpenGL 实现的。如果您愿意使用低级别的图形 API,这是可能的,但不是真正的常规窗口形式(不包括 Form.TopMost)。
-
你在使用 MS-windows 吗?
-
喜剧选项:截取 Windows 窗体应用程序的屏幕截图,将其打印出来,然后将其粘贴到您的屏幕上。严肃的评论 - Nathan 是对的,但掩盖了这样一个事实,即在 C# 以外的非托管语言中,这可能更容易,因为在 C# 中你可以更好地控制绘画。我怀疑 teampeak 使用 Winforms 来做他们的事情——他们可能不得不推出很多自己的绘图逻辑。
-
@PeteBaughman 这绝对是真的,在其他语言中这可能更可行。我只是在 windows 窗体的上下文中发言,因为这是被问到的。