Страницы

Поиск по вопросам

понедельник, 8 октября 2018 г.

Сворачивание приложения в трей

Допустим есть программа которая фоном делает определенные операции, не важно какие, допустим каждые 10 секунд собирает информацию по нагрузке ЦП и RAM. Программа сама по себе десктопная, запускается ручками, надо бы сделать ее чтобы она в авторане запускалась.
Вопрос: как научить ее чтобы при сворачивании она скрывалась в трей, и при необходимости опрокидывала какие либо сообщения. Например как антивирус касперского. Висит в трее, опрокидывает уведомления, когда открываешь - появляется в панеле задач


Ответ

Я использую Hardcodet.NotifyIcon.Wpf
В XAML добавьте пространство имен: xmlns:tb="http://www.hardcodet.net/taskbar"
В контейнер окна поместите:

Для того чтобы свернуть окно в трей, подпишитесь на событие StateChanged
WindowState prevState;
private void Window_StateChanged(object sender, EventArgs e) { if (WindowState == WindowState.Minimized) Hide(); else prevState = WindowState; }
Чтобы развернуть, например при левом клике по иконке в трее:
private void TaskbarIcon_TrayLeftMouseDown(object sender, RoutedEventArgs e) { Show(); WindowState = prevState; }
Для отображения каких-либо сообщений, можно использовать, например, Popup или ToolTip

Комментариев нет:

Отправить комментарий