この記事では、WPFとMVVMとによるシステムトレイアプリケーションの一実装について解説する。ソースコード全体はGitHubリポジトリにある。 この実装は二つの特徴がある。まず、よく使われているWPF NotifyIconを使っていない。ライセンスのCPOLが、どのOSSライセンスとも互換性がないからだ。また、MVVMパターンを採用していてコードビハインドがない。 NotifyIconのラッパー 実装の中心となるのは、WinFormsのNotifyIconクラスのラッパーの NotifyIconWrapperである。このラッパーは、ShowBaloonTipメソッドを呼び出すための依存プロパティNotifyRequestを持っている。 private static readonly DependencyProperty NotifyRequestProperty = DependencyP