3

Win32 API で 1 つ、C# WPF で 2 つのアプリケーションを開発しました。私は問題を抱えています.2つのアプリケーションが一番上でなければなりませんが、2番目(C#の場合)は最初のアプリケーションよりも一番上でなければなりません. 2番目よりもトップ?

2 番目のアプリケーションを一番上にするにはどうすればよいですか? または、すでに一番上にあり、これが最初のアプリケーションの下にあるときに、2番目のアプリケーションを一番上に表示するにはどうすればよいですか?

誰でも私を助けることができますか?ご挨拶、

4

3 に答える 3

7

http://msdn.microsoft.com/en-us/library/system.windows.window.topmost.aspxから:

Topmost プロパティが true に設定されているウィンドウのグループでは、現在アクティブになっているウィンドウが最上位のウィンドウです。

したがって、一番上にしたいウィンドウをアクティブにします:-) ...

編集:これを行うことはほとんどの場合悪い考えである(ユーザーから制御を取得する)というピーターに同意します。これが、MS がユーザーがやりたいことを実行するためのツールを提供しようとしない理由です。私はあなたに疑いの利益を与え、「これをしないでください」とは言いません

于 2011-02-01T13:57:36.537 に答える
2

これは、やりたいことではありません。

どちらのアプリケーションが上にあるかは、ユーザーに任せたいものです。

ただし、オプションがあります。

を使用するFindWindowと、最初に起動されたウィンドウのウィンドウ ハンドルを見つけることができます。次に、このハンドルを取得したら、 を使用SetWindowPosして、ウィンドウが見つけた他のウィンドウの上にあることを確認できます。これを実現するには、 の z 順序引数を使用しますSetWindowPos

注: これらはどちらも PInvoke メソッドです。C# からこれらのメソッドを呼び出すには、PInvoke を使用しFindWindowます。SetWindowPos

于 2011-02-01T13:55:24.447 に答える
0

一方向しか見えない。2 番目のアプリは、最初のアプリが起動するまで最初に監視する必要があります。その後、2 番目のアプリから一番上のスタイルを削除して元に戻す必要があります。このアクションにより、2 番目のアプリが最上位になります。エレガントではありませんが、機能します

于 2011-02-01T14:28:15.460 に答える