web-dev-qa-db-ja.com

.NET 4を使用してプログラムをシステムトレイに最小化する最も簡単な方法

新しいWPFアプリケーションを作成しています。アプリケーションを最小化し、システムトレイの時計の横(またはその一般的な領域)にすてきで快適に配置できるようにする必要があります。

これはWindows XP、Vista、および7で動作する必要があります。古いバージョンのWindowsをサポートする必要はありません。

.NET 4を使用している場合、これを達成する最も簡単な方法は何ですか?

32

MSDNフォーラムの例

通知領域を最小化する方法を示す簡単な例を次に示します。 System.Window.FormsおよびSystem.Drawingアセンブリへの参照を追加する必要があります。

public partial class Window1 : System.Windows.Window
{

    public Window1()
    {
        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 == System.Windows.WindowState.Minimized)
            this.Hide();

        base.OnStateChanged(e);
    }
}
65
LaGrandMere

この無料のWPFの通知アイコンの実装を使用して成功しました。

http://www.hardcodet.net/projects/wpf-notifyicon

セットアップは非常に簡単で、ソースコードが提供されています。 Windows Formsに依存していないため、「純粋な」WPFであり、非常にカスタマイズ可能です。

CodeProject で使用方法のチュートリアルを見つけることができます。
そして、これが Nugetパッケージ です

16
Alex McBride

ツールボックスからnotifyIconをアプリに追加します。
メインformを選択>> Properties >>に移動Eventsアイコン>> FromClosing eventの下に入力MainForm_FormClosing> > Enterキーを押します。

enter image description here

開いた.csファイルに、次のイベントアクションを入力します。

private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
     this.Hide();
     notifyIcon.Visible = true;
     ShowInTaskbar = false;
     e.Cancel = true;
}

これで、Xボタンをクリックすると、メインFORMウィンドウがシステムトレイに最小化されます。次のステップは、FORMを通常の状態に戻すことです。
PropertiesnotifyIconに移動してDoubleClick event >>を入力し、NotifyIcon_DoubleClickと入力してEnterキーを押し、イベント関数を作成します。

enter image description here

このコードをイベントに追加します。

private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
    this.Show();
    notifyIcon.Visible = false;
}

今、あなたは派手なスタイルの通知アイコンを作成したい場合、コンテキストメニューを追加して通知アイコンにリンクすることができますので、そのようなものを取得します:

enter image description here

ContextMenuStripをNotifyIconにリンクする場所は次のとおりです。

enter image description here

幸運を!

2