NotifyIcon en WPF y Visual Basic .NET


Hoy hablaremos de como tener un icono de notificación en WPF usando Visual Basic. Primero debemos agregar al proyecto la referencia a System.Windows.Form y a System.Drawing.Icon, luego agregar nuestro icono al proyecto y en las propiedades marcarlo como elemento incrustado y ahora si miremos el código

Class MainWindow
    Private ni As New System.Windows.Forms.NotifyIcon()
    Private ContextMenu1 As New System.Windows.Forms.ContextMenu()
    Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs)
        'Añadimos la opción Restaurar, que será el elemento predeterminado
        ContextMenu1.MenuItems.Add("&Restaurar", New EventHandler(AddressOf Restaurar_Click))
        ContextMenu1.MenuItems(0).DefaultItem = True
        ' Añadimos un separador
        ContextMenu1.MenuItems.Add("-")
        ' Añadimos el elemento Acerca de...
        ContextMenu1.MenuItems.Add("&Acerca de...", New EventHandler(AddressOf AcercaDe_Click))
        ' Añadimos otro separador
        ContextMenu1.MenuItems.Add("-")
        ' Añadimos la opción de salir
        ContextMenu1.MenuItems.Add("&Salir", New EventHandler(AddressOf Salir_Click))
        'Cargamos el NotifyIcon con el Menu Contextual (Context Menu), con el icono y lo
        'configuramos para que sea visible
        With ni
            .ContextMenu = ContextMenu1
            .Icon = New System.Drawing.Icon(pruebasVB_WPF.Application.ResourceAssembly.
                              GetManifestResourceStream("pruebasVB_WPF.Main.ico"))
            .Visible = True
        End With

    End Sub
End Class

Y ahora agreguemos los eventos de los elementos del menu contextual.

Private Sub Salir_Click()
    ' Este procedimiento se usa para cerrar el formulario,
    ' se usará como procedimiento de eventos, en principio usado por el botón Salir
    Me.Close()
End Sub

Private Sub Restaurar_Click()
    ' Restaurar por si se minimizó
    Show()
    WindowState = FormWindowState.Normal
    Activate()
End Sub

Private Sub AcercaDe_Click()
    ' Mostrar un simple Mensaje
    ' Este procedimiento se usará para los eventos de Acerca de...
    MessageBox.Show("Prueba 2 de NotifyIcon con VB.NET")
End Sub

Por último tenemos que añadir un evento más, al cerrarse la Ventana se tiene que eliminar el Icono y el Menú Contextual.

Private Sub Window_Closing(sender As System.Object, e As System.ComponentModel.CancelEventArgs)
    Me.ni.Visible = False
    'Eliminamos el Icono
    Me.ni = Nothing
    'Eliminamos el menú contextual
    Me.ContextMenu1 = Nothing
End Sub

El código xaml de la Ventana sería así.

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded" Closing="Window_Closing">
    <Grid>
    </Grid>
</Window>

Anuncios

Una respuesta a “NotifyIcon en WPF y Visual Basic .NET

  1. realiza bien la explicacion para poder entenderr
    please

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s