Потрібно використовувати контроль NotifyIcon від System.Windows.Forms, або ж ви можете використовувати API Notify Icon, наданий API Windows. WPF не надає такого еквівалента, і це було кілька разів запитуватися в Microsoft Connect.
У мене є код на GitHub, який використовує System.Windows.Forms
компонент NotifyIcon у програмі WPF, код можна переглянути за посиланням https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs
Ось бітні підсумки:
Створіть вікно WPF з ShowInTaskbar = False, яке завантажується у невидимий стан.
На рівні класу:
private System.Windows.Forms.NotifyIcon notifyIcon = null;
Під час OnInitialize ():
notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Click += new EventHandler(notifyIcon_Click);
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = IconHandles["QuickLaunch"];
Під час OnLoaded ():
notifyIcon.Visible = true;
А для взаємодії (показано як notifyIcon.Click та DoubleClick вище):
void notifyIcon_Click(object sender, EventArgs e)
{
ShowQuickLaunchMenu();
}
Звідси ви можете відновити використання елементів керування та API WPF, таких як контекстні меню, спливаючі вікна тощо.
Це так просто. Вам точно не потрібне вікно WPF для розміщення компонента, це просто найзручніший спосіб ввести його в додаток WPF (оскільки вікно, як правило, точка входу за замовчуванням, визначена через App.xaml), також ви не ' не потрібен WPF Wrapper або сторонне управління, оскільки компонент SWF гарантовано присутній у будь-якій установці .NET Framework, яка також має підтримку WPF, оскільки є частиною .NET Framework (на якій будуються всі поточні та майбутні версії .NET Framework). На сьогоднішній день від компанії Microsoft немає жодних ознак того, що підтримка SWF буде скорочена з .NET Framework незабаром.
Сподіваюся, що це допомагає.
Це трохи сиру, що вам потрібно використовувати рамковий компонент до 3.0, щоб отримати піктограму лотка, але, зрозуміло, як це пояснила Microsoft, не існує концепції системного лотка в межах WPF. WPF - це технологія презентації, а піктограми сповіщень - це концепція операційної системи (а не «презентація»).