2011-12-07 10 views
0

現在のプロジェクトにボタンを追加しようとしています。これを押すと、ウィンドウが背面にx秒間送信され、他のウィンドウで作業できるようになります。自動的に再び前面に来る。 How to send a WPF window to the back?Bring a window to the front in WPFをBackgroundWorkerと組み合わせることで、私は99%を達成できました。ボタンを押すと、ウィンドウは背面に戻り、指定した秒数を返します。問題は、私が別のウィンドウ(Opera、Wordなど)に入ると、それが後ろから返ってこないことです。私は旗で遊んでみましたが、動作させることはできません。これは可能ですか?そしてもしそうなら、どうですか?フォローアップ:WPFのウィンドウを前面に持って来る

ありがとうございます!

+0

は、ウィンドウをモーダルに表示したいのですが..?なぜあなたはある時間の間窓が後ろに行くのですか?何か理由はありますか?あなたがwindow.bringtofrontを持っていた2番目のウィンドウをチェックするブール値を設定しないとどうですか... // Miscrostサイトから// //ウィンドウをモーダルで表示します //注:返り値ウィンドウが閉じているときのみ Nullable dialogResult = dialogBox.ShowDialog(); – MethodMan

+0

これは、私がコールセンターにある仕事のために書いていることです。私たちの主な仕事の窓は、彼らが(不愉快に)サイズが制限されているJavaベースのWebアプリケーションです。つまり、私のプログラムが使用可能なサイズになるためには、必要な情報の一部をカバーする必要があります。このボタンを使用することで、プログラムを隠し、必要な情報を見つけ出し、再び使用できるようにポップバックさせることができます。ある程度、それはちょうど "眩しい"機能ですが、非常に便利です。特に、タスクバーからウィンドウを最小化/最大化する必要はありません。 –

+0

私はあなたが最初の質問でそれを指定しなかったjava/javascriptを使用していたことを知らなかった。ok thanks – MethodMan

答えて

0

ハックで可能です。ちょうどそれをしてください:

Topmost = true; 
Topmost = false; 

ウィンドウが前面にある必要があります。

+0

したがって、基本的にMoveToForegroundメソッドとMoveToBackgroundメソッドを削除しますか?私はこのアプローチをとることを好まないが、可能な唯一の方法であるならば、私はそれを解決するだろう。 :) –

+1

@KevenM:ウィンドウをフォアグラウンドに強制するのは、ウィンドウのガイドラインではありません。だからこれは唯一の100%の回避策です。私を信頼してください;-) – Fischermaen

+0

タスクマネージャはどのようにそれを行いますか(実行中のプログラムを右クリックする)?それは単なるMSの書いた例外ですか?そして、その機能を利用する方法はありませんか? –

関連する問題