【WPF】C# ウィンドウのクローズボタンでプロセスを終了しないで裏に隠す

WPF WPF

常時起動しておきたいプロセスがあります。Windowsサービスのように利用したいのですが、とある理由でWindowsサービスに登録できないため、Windowsアプリケーションでプログラムを構築します。
起動時からウィンドウを非表示にしておけばよいのですが、ある処理をすると最前面に表示します。
たとえば、エラー監視をしていてエラーが発生したときにウィンドウを表示します。ウィンドウクローズ(閉じるボタン)でウィンドウが終了したと見せかけて、裏に隠れてまたエラー監視をするような感じです。

最前面表示から再度裏に隠したいときに、ユーザーにはあたかもウィンドウをクローズしているかのような動作に見えるでしょう。

アプリケーションの起動は、タスクスケジューラでWindows起動時に起動しようと思います。

Sponsored links
Sponsored links

開発環境

開発環境

PC : NiPoGi AK1PULS
OS : Windows11 Pro 23H2

Microsoft Visual Studio Community 2022 Version 17.76

MainWindow.xaml

WindowにClosingイベントハンドラを登録します。

MainWindow.xaml.cs

クローズするイベントハンドラで
 this.Hide();
をするだけでOKです。このとき、
 e.Cancel = true;
でClosing処理を中断しておくことを忘れずに。

タイトルとURLをコピーしました