2010-12-01 42 views
1

私はWPF NotifyIcon from Philipp Sumiを使用しています。トレイアイコンのポップアップとしてWPF UserControlを使用することができます。非常にうまく動作しますが、ある状況では、ポップアップの上に表示される別のアプリケーションからの別のポップアップがあります。私はポップアップを常に上にしたい。UserControlが常に上(最上位、XAML/WPF)

できますか?だから、UserControlのzオーダーに影響を与えることができますか?

編集 - コメントへの反応: 私は、他のアプリはちょうど重要として彼の情報を見つけ、彼は一番上にあるべきと考えているので、私の質問は、愚かに見える実現。私の場合、それは状況ではありません。私は外部アプリに接続しています。このアプリの目的は、外部デバイスからデータを読み込むことです。そのアプリケーションが終了すると、ポップアップで「読み込み完了」と表示されます。その後、私のアプリはデータを処理します。私のアプリが処理を完了すると(ほぼ直ちに)、「完了した処理、ここをクリックしてデータを表示」というボックスが表示されます。 私のポップアップからの情報は、自分がクリックしなければならないボタンを含んでいるため、私の特定のケースではユーザにとってより便利です。どちらのポップアップも同じデータについて「話す」。 これは、「なぜポップアップを使用するのですか?」のようなコメントが増える可能性があることを理解しています。代わりの解決策ではなく、その質問に対する回答に集中してください。

+1

すべての開発者は、彼らのポップアップが最もimportatntであることを確信している=)他のアプリケーションが同じメソッドを使用するとどうなります –

+5

あなたのポップアップの上に乗るために? – TheFogger

+0

ご意見ありがとうございます。私は自分の投稿を編集して自分の状況を整理しました –

答えて

1

よく、そのようなMakeMyThingSuperTopMost()おかし、read hereする必要があります。

+0

私はSuperTopMostを求めていません。私はTopMostを求めています。これはちょうど1つの他のアプリで非常に特殊なケースを処理することです。 –

1

他のポップアップを「トップではない」ようにして、ポップアップを表示することができます。 EnumWindows api funcで開いているすべてのウィンドウを列挙し、その最上位ステータスをSetWindowsPosで削除するか、もう1つのポップアップを見つけなければなりません。しかし、これは間違いなく汚い壊れやすいトリックです(もしあなたがそれをまったく動作させることができれば)。

http://pinvoke.net/default.aspx/user32.EnumWindows http://pinvoke.net/default.aspx/user32/SetWindowPos.html

関連する問題