我在Win32 API中开发了两个应用程序,在C#WPF中开发了第二个应用程序。 我有一个问题,2个应用程序必须是最顶层的,但第二个(在C#中)必须比第一个应用程序更强大,问题是第二个应用程序从自动启动运行然后将始终比第一个应用程序更快启动,并且第一个应用程序更多最重要的是第二名?
如何才能让第二个应用程序更加顶级? 或者我如何能够在最顶层的时候显示第二个应用程序,这是第一次申请?
任何人都可以帮助我吗? 问候,
答案 0 :(得分:7)
来自http://msdn.microsoft.com/en-us/library/system.windows.window.topmost.aspx:
在将Topmost属性设置为true的窗口组中,当前激活的窗口是最顶层的窗口。
因此,请激活您想成为顶级顶部的窗口:-) ...
编辑:我同意彼得的看法,这样做几乎总是一个坏主意(从用户那里获得控制权)。这就是为什么MS不会为你提供工具去做你想做的事情。我会给你怀疑的好处,而不是告诉你“不要这样做”答案 1 :(得分:2)
这不是您应该做的事情。
一个应用程序或另一个应用程序是否位于顶部,是您希望留给用户的内容。
但是,有选项。
使用FindWindow
,您可以找到首先启动的窗口的窗口句柄。然后,当您拥有此句柄时,可以使用SetWindowPos
确保您的窗口位于您找到的另一个窗口的顶部。您可以使用SetWindowPos
的z-ordering参数来实现此目的。
注意:这些都是PInvoke方法。使用PInvoke FindWindow
和SetWindowPos
从C#调用这些方法。
答案 2 :(得分:0)
我只看到一种方式。第二个应用程序应首先监控第一个应用程序。之后,您应该从第二个应用程序中删除最顶级的样式并将其取回。此操作带来第二个应用程序最顶层。它不优雅,但它的工作原理