Musisz użyć kontrolki NotifyIcon z System.Windows.Forms lub alternatywnie możesz użyć interfejsu Notify Icon API dostarczanego przez Windows API. WPF nie zapewnia takiego odpowiednika i został kilkakrotnie zażądany w witrynie Microsoft Connect.
Mam kod na GitHub, który używa System.Windows.Forms
komponentu NotifyIcon z poziomu aplikacji WPF, kod można obejrzeć na https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs
Oto podsumowanie:
Utwórz okno WPF z ShowInTaskbar = False, które jest ładowane w niewidocznym stanie.
Na poziomie klasy:
private System.Windows.Forms.NotifyIcon notifyIcon = null;
Podczas OnInitialize ():
notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Click += new EventHandler(notifyIcon_Click);
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = IconHandles["QuickLaunch"];
Podczas OnLoaded ():
notifyIcon.Visible = true;
A do interakcji (pokazane powyżej jako notifyIcon.Click i DoubleClick):
void notifyIcon_Click(object sender, EventArgs e)
{
ShowQuickLaunchMenu();
}
Z tego miejsca możesz wznowić korzystanie z kontrolek WPF i interfejsów API, takich jak menu kontekstowe, wyskakujące okienka itp.
To takie proste. Nie potrzebujesz dokładnie okna WPF do hostowania komponentu, jest to po prostu najwygodniejszy sposób wprowadzenia go do aplikacji WPF (ponieważ okno jest ogólnie domyślnym punktem wejścia zdefiniowanym przez App.xaml), podobnie nie robisz tego. Potrzebujesz opakowania WPF lub formantu innej firmy, ponieważ komponent SWF jest obecny w każdej instalacji .NET Framework, która również obsługuje WPF, ponieważ jest częścią .NET Framework (na której opierają się wszystkie obecne i przyszłe wersje .NET Framework). Do chwili obecnej Microsoft nic nie wskazuje na to, że obsługa SWF zostanie wkrótce usunięta z .NET Framework.
Mam nadzieję, że to pomoże.
To trochę serdeczne, że musisz użyć komponentu Framework starszego niż 3.0, aby uzyskać ikonę w zasobniku, ale zrozumiałe, jak wyjaśnił to Microsoft, nie ma koncepcji zasobnika systemowego w zakresie WPF. WPF to technologia prezentacji, a ikony powiadomień to koncepcja systemu operacyjnego (nie „prezentacji”).