2012-09-14 14 views
8

Sono molto nuovo alla programmazione di C#, anche se ho scriptato C# in unity3D per alcuni anni. Attualmente sto cercando di fare un icona nella barra WPF, tutte le fonti che ho trovato in rete dirmi di usareC# trayicon using wpf

System.Windows.Forms 

Tuttavia .Forms non è disponibile in System.Windows per me, e ho non ho idea del perché no. Qualcuno mi può aiutare con questo?

risposta

25

è necessario aggiungere i riferimenti ai System.Window.Forms e le assemblee System.Drawing e quindi si utilizza in questo modo. Supponiamo di provare a ridurre l'icona Finestra a vassoio e mostrarla di nuovo quando l'utente fa clic sull'icona:

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

Eccellente il riferimento alla parola mi ha aiutato a scoprire come e dove. E ora ho un'icona nella barra delle applicazioni, grazie =) – Logan

+2

Se lo hai in una finestra con i riferimenti System.Windows ti imbatterai in alcuni problemi di ambiguità. L'ho risolto aggiungendo un nome all'utilizzo: using WinForms = System.Windows.Forms; Quindi lo chiamò con WinForms.NotifyIcon notifyIcon = new WinForms.NotifyIcon(); –