Cómo crear información sobre herramientas enriquecida y globos enriquecidos en el área de notificación

StackOverflow https://stackoverflow.com/questions/8836463

Pregunta

Me he estado preguntando, cada vez que llamas al ShowBalloonTip método de la NotifyIcon clase, obtendrás un globo de información sobre herramientas como este:

Standard Baloon Tip
Figura 1:Información sobre herramientas de globo estándar



Algunas aplicaciones y productos de Microsoft pueden mostrar más que esas "simples" sugerencias en forma de globo.
Aquí hay algunos ejemplos:

Windows Update Tip Figura 2:Información sobre herramientas de globo de Windows Update


Driver Installation Tip
(fuente: microsoft.com)

Fig. 3:Información sobre herramientas en globo sobre la instalación del controlador de hardware


USB Safely Remove
Figura 4:Información sobre herramientas de eliminación de hardware (Programa:USB quitar con seguridad)



Una buena mirada a las Figuras 2, 3 y 4 revela que no son globos de información sobre herramientas estándar.

Figura 2 tiene una forma diferente, posiblemente debido a la configuración del Region propiedad.También tiene un ícono personalizado que es mucho más grande que el estándar. Icono de información sobre herramientas.

Fig. 3 usa la forma estándar (creo) pero tiene un ícono personalizado que no hace falta decir que es más grande que el predeterminado Icono de información sobre herramientas tamaño.

Fig4 utiliza un estándar Icono de información sobre herramientas pero tiene una forma diferente.


Mi pregunta es ¿cómo se crean los globos de información sobre herramientas "enriquecidos" que se ven en el área de notificación en .NET?Puedo manejar WinAPI y también puedo producir el resultado necesario.

¿Fue útil?

Solución

Tienes que usar la función win32 Shell_notifyicon. Puedes configurar el dwinfoflags miembro de Notifyicondata Estructura a NIIF_USER para usar un icono personalizado para la información sobre herramientas de globo.

En Windows XP Service Pack 2 y luego puede usar el hicón miembro para especificar un icono personalizado.

En Windows Vista y más tarde la estructura Notifyicondata contiene el miembro adicional Hballoonicon. Puede usar este miembro para especificar un icono personalizado si ha establecido el cbsize Miembro al tamaño correcto de la estructura extendida Notifyicondata.

Otros consejos

Mira esto:

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

o

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

Otra opción es hacer su propio globo de formulario de notificación, entonces tendrá una notificación con fondo de flores y bordes rosados ​​:) por cierto:eso también puede tener alguna funcionalidad.

Como en este ejemplo:

http://i.stack.imgur.com/QtA0Y.jpg<< Ejemplo de imagen

Cree un formulario como desee, región, controles, etc. :) y codifique algo como:

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();
    }

Por cierto, todos se ven un poco iguales, con un tamaño de icono diferente, y el primero podría encajar a la derecha, mientras que todos los demás están alineados a la izquierda ...cambios menores de tono, etc.:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top