アプリケーションの作成が終了したので、そのために "システムトレイ機能に最小化"を組み込みたいと思います。良い記事を読みました アプリをシステムトレイに最小化する 。これらがWindows.Formクラスを利用していることに気付きました。
残念ながら、Windows Presentation Foundation WPF reference を使用してアプリケーションUIを作成しました。これで、NotifyIconはWPFではサポートされていないことがわかりました。 CodePlexには、NotifyIconプロパティをシミュレートするオープンソースライブラリがあることがわかります WPF Contrib まだ使用していません。
今、私は修正中です。ここに私の質問があります:-
a)単一のコンポーネントだけにサードパーティのライブラリを組み込みたくありません。
b)WPFでNotifyIconを使用せずに最小化機能を実行できますか?はいの場合、誰かが私にリードをお願いできますか?
または、Windowsフォームを使用するようにUIを元に戻す必要がありますか?
外部コンポーネントの使用に抵抗がある場合は、WPF NotifyIcon をお勧めします。私はそれを使用しました。それは簡単で、うまく機能します。
対応するWinFormsコンポーネントだけに依存するのではなく、豊富なツールチップ、ポップアップ、コンテキストメニュー、バルーンメッセージを表示するためにWPFフレームワークのいくつかの機能を活用する純粋に独立したコントロールです。
今日、この投稿に出会いました。
参考のために、私はこれをしばらく前に解決しました。それは非常にうまく機能し、私が少し問題を抱えているのは、いくつかのマルチディスプレイ設定で時折しかありません。
これは、GITとNuGetが組み込まれる前のことでした。興味がある場合は、GITリポジトリに配置します。
ここにスレッドがあり、それは私を大いに助けました。
https://stackoverflow.com/a/12428063/10305444
public partial class Window : System.Windows.Window{
public Window()
{
InitializeComponent();
System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
ni.Icon = new System.Drawing.Icon("Main.ico");
ni.Visible = true;
ni.DoubleClick +=
delegate(object sender, EventArgs args)
{
this.Show();
this.WindowState = WindowState.Normal;
};
}
protected override void OnStateChanged(EventArgs e)
{
if (WindowState == WindowState.Minimized)
this.Hide();
base.OnStateChanged(e);
}}