Debe utilizar el control NotifyIcon de System.Windows.Forms o, alternativamente, puede usar la API Notify Icon proporcionada por la API de Windows. WPF no ofrece tal equivalente, y se ha solicitado en Microsoft Connect varias veces.
tengo código en GitHub que utiliza System.Windows.Forms
NotifyIcon de componentes desde una aplicación de WPF, el código se puede ver en https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs
Éstos son los bits de resumen:
crear una ventana de WPF con ShowInTaskbar = False, y que está cargado en un estado no visible.
En clase de nivel:
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 (mostrado como notifyIcon.Click y DoubleClick arriba):
void notifyIcon_Click(object sender, EventArgs e)
{
ShowQuickLaunchMenu();
}
Desde aquí se puede reanudar el uso de los controles y las API de WPF como los menús de contexto, ventanas pop-up, etc.
es así de simple. No necesita exactamente una ventana WPF para alojar el componente, es la forma más conveniente de introducir uno en una aplicación WPF (como una ventana es generalmente el punto de entrada predeterminado definido a través de App.xaml), del mismo modo, no lo hace Necesito WPF Wrapper o 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, Microsoft no indica que el soporte de SWF se eliminará de .NET Framework en el corto plazo.
Espero que ayude.
Es un poco de queso que tiene que usar un componente de marco anterior a la 3.0 para obtener un icono de bandeja, pero comprensiblemente, como Microsoft lo ha explicado, no existe el concepto de una 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").
¡Gracias por todas las sugerencias! El WPF-NotifyIcon es lo que voy a hacer, ya que una prueba rápida muestra que es bastante prometedor e indolora. –