私はすべての3つの状態扱うことができるようにしたいプログラムがあります。ちょうどのようなウィジェットとして動作し、ShowInTaskbar、最上位とウィンドウが、また、通知領域のアイコンを持つ
- がタスクバーに表示されていませんWindowsサウンド、ネットワークプログラムなど
- タスクバーに表示しますが、最上位は表示しません。ウィンドウには通知領域のアイコンが表示され、#1と同じように動作するはずですが、タスクバーにもウィンドウが表示されます。
- タスクバーに最前面に表示されます。ウィンドウは#2と同じように動作するはずですが、ウィンドウが一番上に表示されます。注:タスクバーアイコンをクリックするとプログラムが最小限に抑えられるのと同じように、最小化が可能なはずです。
これらは私の判断基準であり、それらはすべてうまく一緒に働くように働いていますが、最後のいくつかの調整を行うことはできません。 #1は大丈夫です - 私はそれを簡単に整理しました。 #2と#3はより多くの問題を引き起こします。
私の最初の質問は、Windowsがタスクバーのアイコンをクリックして最小化/元に戻す方法をWindowsがどのように処理するかです。私は#2と#3でそれをエミュレートしたいと思うので。
私は現在、Window.Visibility
をVisibility.Hidden
に設定するだけで、ウィンドウを非表示にしています。ウィンドウを表示するには、Show()
とし、Activate()
としてください。
私が言ったように、#2と#3については、ユーザーがタスクバーアイコンをクリックしたときにWindowsが行うことをコピーしたいと思います。それをしてもいいですか?または、これを行う別の方法を見つける必要がありますか?あなたがチェックすることができ
アプリケーション内の1つのウィンドウまたは複数の異なるウィンドウについて話していますか? – CodingBarfield
@CodingBarfieldそれはちょうど1つのウィンドウです – Harry
あなたは、Windowsの機能をエミュレートすることはできません。プログラムは、ユーザーの顔にウィンドウを押し込む機能が厳しく制限されています。ルールはSetForegroundWindowのMSDNライブラリ記事に記載されています。 –