Как стать автором
Обновить

Программируем Windows 7: Taskbar. Часть 4 – Custom OverlayIcon

Время на прочтение 2 мин
Количество просмотров 1.4K
Ранее я писал о том, как можно добавить значок состояния для вашего приложения в панели задач Windows 7. Мы рассматривали статические изображения для этих целей. Напомню, что для этого мы использовали метод SetTaskbarOverlayIcon, в параметрах которого передается ссылка на Icon.

Однако, один из читателей блога предложил другой сценарий, в котором на месте дополнительной иконки отображается какая-то информация. К примеру, это может быть текущая скорость закачки, если ваше ПО что-то загружает по сети. Либо это может быть количество новых писем в почтовом ящике, если это почтовый клиент. Примеров можно много привести.

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

WindowsFormsExtensions.SetTaskbarOverlayIcon(this, Icons.Error, "Error");

В качестве второго параметра здесь передается объект Icon. Однако кто нам мешает генерировать этот объект динамически? Давайте воспользуемся нехитрым кодом и сделаем это. Я создам метод, который будет генерировать такое изображение и покажу эту иконку.

private static Icon BuildIcon(int param)
{
Bitmap image = Icons.BLANK2334242;
Graphics.FromImage(image).DrawString(param.ToString(@"D2"), new Font("Arial", 54), Brushes.White, 10, 25);
return Icon.FromHandle(image.GetHicon());
}

private void ShowStatus(object sender, EventArgs e)
{
WindowsFormsExtensions.SetTaskbarOverlayIcon(this, BuildIcon(50, "Status");
}


Таким образом, при помощи метода BuildIcon будет сгенерирована новая иконка, которая будет отображена на панели задач.



На данном скриншоте хорошо видно, что к стандартному значку мы добавили текст и отобразили это на панели задач.

В демонстрационном приложении я создал таймер, который имитирует работу менеджера загрузки, выдавая постоянно разную “скорость” закачки.

Демонстрационное приложение:
Taskbar-CustomIcons.zip
Теги:
Хабы:
+39
Комментарии 15
Комментарии Комментарии 15

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн