2012-04-19 6 views

Antwort

46

Example in MSDN forum

Hier ist ein kleines Beispiel zu zeigen, wie in den Infobereich zu minimieren. Sie müssen Verweise auf die System.Window.Forms-und System.Drawing-Assemblys hinzufügen.

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); 
    } 
} 
+0

Also muss ich ein Icon namens "Main.ico" in meinem ApplicationDirectory haben? –

+0

LeGrandMere - Dank für hervorragende succint fix. Felix D: Sie können hinzufügen Icon mit: var iconStream = Application.GetResourceStream (new Uri ("pack: // Anwendung: ,,,/LaunchPad.UI; Komponente/Bilder/Launch.ico")) ?. Strom; dann tun var ni = new NotifyIcon { Icon = new Icon (iconStream), Visible = true }; – yonsk

9

Ich hatte Erfolg mit dieser kostenlosen Benachrichtigungs-Symbol-Implementierung in WPF.

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

Es ist ziemlich einfach zu installieren und der Quellcode zur Verfügung gestellt. Es ist nicht auf Windows Forms angewiesen, also ist es "reines" WPF und sehr anpassbar.

Sie finden ein Tutorial, wie Sie es auf CodeProject verwenden können.

5

notifyIcon auf Ihre App von Toolbox hinzufügen.
Wählen Sie Ihre Haupt form >> gehen Sie zu der Properties >> wählen Sie Events Symbol >> unter FromClosing event Typ MainForm_FormClosing >> drücken Sie Enter.

enter image description here

In geöffnet .cs Datei folgendes Ereignis Aktion eingeben:

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

Jetzt ist Ihr Haupt FORM Fenster in die Taskleiste minimiert werden, wenn Sie auf X-Taste klicken. Der nächste Schritt besteht darin, FORM in den Normalzustand zurückzuversetzen.
Gehen Sie zu der Properties Ihrer notifyIcon >> finden DoubleClick event >> geben Sie NotifyIcon_DoubleClick und drücken Sie die Eingabetaste, um Ereignisfunktion für Sie erstellt zu bekommen.

enter image description here

diesen Code auf Ihre Veranstaltung Put:

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

Nun, wenn Sie das Notify-Symbol in der Phantasie Stil machen wollen Sie Kontextmenü hinzufügen und verknüpfen es mit Ihrem Symbol benachrichtigen , so dass Sie so etwas bekommen:

enter image description here

Hier ist wHE re Sie Context zu NotifyIcon verlinken:

enter image description here

Viel Glück!

+0

Es scheint mir, dass Sie Windows Forms beschreiben anstelle von WPF. –