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

243
07 июля 2017, 03:20

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

Вопрос: как научить ее чтобы при сворачивании она скрывалась в трей, и при необходимости опрокидывала какие либо сообщения. Например как антивирус касперского. Висит в трее, опрокидывает уведомления, когда открываешь - появляется в панеле задач

Answer 1

Я использую Hardcodet.NotifyIcon.Wpf

В XAML добавьте пространство имен: xmlns:tb="http://www.hardcodet.net/taskbar"

В контейнер окна поместите:

<tb:TaskbarIcon Visibility="Visible"
                ToolTipText="..." IconSource="..."/>

Для того чтобы свернуть окно в трей, подпишитесь на событие 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

READ ALSO
WCF переделать helpPage

WCF переделать helpPage

Всем привет! Суть вопроса: имеется проект WebApi к которому позднее была добавлена WCFУ webApi есть встроеный механизм HelpPage, достаточно удобный,...

241
Плагин по управлению яркости экрана в Unity на платформе Android

Плагин по управлению яркости экрана в Unity на платформе Android

У меня есть java-код по управлению яркостью экрана, который отлично работает в Android Studio

243
Фильтр на два поля vue js [требует правки]

Фильтр на два поля vue js [требует правки]

Не могу понять, как сделать фильтр массива ( в котором есть объекты ) Фильтровать можно по двум параметрам Скриншоты: link

312
Что такое global.lacksGlobal?

Что такое global.lacksGlobal?

В таблице поддержки новых js-фич обнаружил такой тест:

326