2012-01-12 15 views
10

Mi chiedevo, ogni volta che si chiama il metodo della classe NotifyIconShowBalloonTip, si ottiene un suggerimento palloncino come questo:Come creare tooltip ricchi e palloncini ricchi di notifica

Standard Baloon Tip
Fig1: Standard Balloon Tooltip



Alcune applicazioni ei prodotti Microsoft sono in grado di visualizzare più di quelle punte 'semplici' a palloncino.
Ecco alcuni esempi:

Windows Update Tip Fig2: Windows Update Balloon Tooltip


Driver Installation Tip http://i.msdn.microsoft.com/dynimg/IC295019.png
Fig3: Hardware di installazione del driver Balloon Tooltip


USB Safely Remove
Fig4: Hardware Removal Tooltip (Programma: USB Safely Remove)



una buona occhiata a figure 2, 3, 4 e rivela che non sono i suggerimenti palloncino standard!

Fig2 ha una forma diversa, probabilmente dall'impostazione della proprietà Region. Ha anche un'icona personalizzata che è molto più grande dello standard ToolTipIcon.

Fig3 utilizza la forma standard (credo) ma ha un'icona personalizzata che, inutile dire, è più grande della dimensione predefinita ToolTipIcon.

Fig4 utilizza uno standard ToolTipIcon ma ha una forma diversa.


La mia domanda è: come si crea uno qualsiasi dei suggerimenti del fumetto "ricco" visualizzati nell'area di notifica in .NET? Posso gestire WinAPI così come può produrre l'output necessario.

+0

* Il mio * buon aspetto non me lo dice. Cosa c'è di diverso nel tuo look? Sì, usano icone personalizzate di grandi dimensioni. Questo è stato supportato da Windows XP SP2. Utilizzare la [funzione 'Shell_NotifyIcon'] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762159.aspx) per crearli. –

risposta

5

È necessario utilizzare la funzione Win32 Shell_NotifyIcon. È possibile impostare dwInfoFlags membro della struttura NOTIFYICONDATA su NIIF_USER per utilizzare un'icona personalizzata per la descrizione comando del fumetto.

In Windows XP Service Pack 2 e versioni successive è possibile utilizzare il membro hIcon per specificare un'icona personalizzata.

Su Windows Vista e versioni successive la struttura NOTIFYICONDATA contiene il membro aggiuntivo hBalloonIcon. È possibile utilizzare questo membro per specificare un'icona personalizzata se il membro cbSize è stato impostato sulla dimensione corretta della struttura estesa di NOTIFYICONDATA.

0

Check this out:

http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx

o

www.codeproject.com/KB/WPF/wpf_notifyicon.aspx

Altra opzione è quella di rendere il proprio modulo di notifica palloncino, quindi avrai una notifica con sfondo di fiori e bordi rosa :) BTW: che può avere anche alcune funzionalità.

come in questo esempio:

http://i.stack.imgur.com/QtA0Y.jpg < < Immagine Esempio

Creare un modulo che vuoi, Regione, controlli, ecc :) e il codice di qualcosa di simile a:

void notifyIcon_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (!this.Visible) 
     { 
      ShowPopup(); 
     } 
    } 

    Timer t = new Timer(); 
    private void ShowPopup() 
    { 
     Rectangle rect = Screen.GetWorkingArea(new Point(Screen.PrimaryScreen.Bounds.Right, Screen.PrimaryScreen.Bounds.Bottom)); 
     this.Top = rect.Bottom - this.Height; 
     this.Left = rect.Right - this.Width; 
     this.Visible = true; 

     t.Interval = 4000; 
     t.Tick += new EventHandler(t_Tick); 
     t.Start(); 
    } 

    void t_Tick(object sender, EventArgs e) 
    { 
     t.Stop(); 
     Visible = false; 
    } 

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

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     notifyIcon.Visible = false; 
     notifyIcon.Dispose(); 
    } 

A proposito, sembrano tutti uguali, con icone di dimensioni diverse, e il primo o ne potrebbe adattarsi a destra, mentre tutti gli altri sono allineati a sinistra ... minori variazioni di colore Ecc. :)

+0

Non hai davvero bisogno di fare tutto questo, né hai bisogno di usare WPF. Il supporto per questo è integrato in Windows. –

+0

Bene, l'API di Windows è in grado ... Non ho trovato un modo forte ma semplice. Cosa avevi in ​​mente? –

Problemi correlati