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

167
08 февраля 2020, 22: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
FileStream и расширение длины файла

FileStream и расширение длины файла

Если открывается пустой файл, который не содержит данных, те

173
ObservableCollection связать с listView

ObservableCollection связать с listView

Сначала попробовал сделать так как в инструкции https://docsmicrosoft

148
С# Вопрос по Chart.Series!

С# Вопрос по Chart.Series!

Возможно ли написать код к примеру: Если ChartSeries[0] существует, то ввести Chart

156