Le moyen le plus simple pour un programme de se réduire lui-même dans la barre d’état système à l’aide de .NET 4

Je suis en train de créer une nouvelle application WPF et je dois être en mesure de la minimiser et d’avoir une belle fenêtre dans la barre d’état système, juste à côté de l’horloge (ou dans cette zone générale).

Cela doit fonctionner sous Windows XP, Vista et 7. Je n’ai pas besoin de supporter les anciennes versions de Windows.

Quel est le moyen le plus simple d’y parvenir si j’utilise .NET 4?

Exemple dans le forum MSDN

Voici un exemple rapide pour montrer comment réduire au minimum dans la zone de notification. Vous devez append des références aux assemblys System.Window.Forms et 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); } } 

J’ai réussi à utiliser cette implémentation gratuite notify-icon dans WPF.

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

C’est assez simple à installer et le code source est fourni. Il ne repose pas sur Windows Forms, il est donc «pur» en WPF et très personnalisable.

Vous pouvez trouver un tutoriel sur son utilisation sur CodeProject .

Ajoutez notifyIcon à votre application depuis Toolbox.
Sélectionnez votre form principal >> allez dans Properties >> sélectionnez l’icône Events >> sous le type d’ FromClosing event MainForm_FormClosing >> appuyez sur enter.

entrez la description de l'image ici

Dans le fichier .cs ouvert, entrez l’action suivante de l’événement:

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

Maintenant, votre fenêtre principale de formulaire sera réduite à la barre d’état système lorsque vous cliquez sur le bouton X. La prochaine étape consiste à ramener le formulaire à son état normal.
Accédez aux Properties de votre notifyIcon >> trouver un DoubleClick event >>, tapez NotifyIcon_DoubleClick et appuyez sur Entrée pour obtenir la fonction d’événement créée pour vous.

entrez la description de l'image ici

Mettez ce code à votre événement:

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

Maintenant, si vous voulez créer l’icône de notification dans un style sophistiqué, vous pouvez append un menu contextuel et le lier à votre icône de notification afin que vous obteniez quelque chose comme ça:

entrez la description de l'image ici

Voici où vous liez contextMenuSsortingp à NotifyIcon:

entrez la description de l'image ici

Bonne chance!