Debe usar el control NotifyIcon de System.Windows.Forms, o también puede usar la API de icono de notificación proporcionada por la API de Windows. WPF no proporciona dicho equivalente, y se ha solicitado en Microsoft Connect varias veces.
Tengo un código en GitHub que usa el System.Windows.Forms
componente NotifyIcon desde una aplicación WPF, el código se puede ver en https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs
Aquí están los bits de resumen:
Cree una ventana WPF con ShowInTaskbar = False, y que se cargue en un estado no visible.
A nivel de clase:
private System.Windows.Forms.NotifyIcon notifyIcon = null;
Durante OnInitialize ():
notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Click += new EventHandler(notifyIcon_Click);
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = IconHandles["QuickLaunch"];
Durante OnLoaded ():
notifyIcon.Visible = true;
Y para la interacción (se muestra como notifyIcon.Click y DoubleClick arriba):
void notifyIcon_Click(object sender, EventArgs e)
{
ShowQuickLaunchMenu();
}
Desde aquí, puede reanudar el uso de controles WPF y API, como menús contextuales, ventanas emergentes, etc.
Es así de simple. No necesita exactamente una ventana WPF para alojar el componente, es la forma más conveniente de introducir una en una aplicación WPF (ya que una ventana es generalmente el punto de entrada predeterminado definido a través de App.xaml), del mismo modo, usted no ' No necesita un WPF Wrapper o un control de terceros, ya que el componente SWF está garantizado en cualquier instalación de .NET Framework que también tenga soporte WPF ya que es parte de .NET Framework (sobre el cual se basan todas las versiones actuales y futuras de .NET Framework). Hasta la fecha, no hay ninguna indicación de Microsoft de que la compatibilidad con SWF se eliminará de .NET Framework en el corto plazo.
Espero que ayude.
Es un poco complicado tener que usar un Componente Framework anterior a 3.0 para obtener un icono de bandeja, pero es comprensible que Microsoft lo haya explicado, no existe un concepto de Bandeja del sistema dentro del alcance de WPF. WPF es una tecnología de presentación, y los iconos de notificación son un concepto de sistema operativo (no una "presentación").