Ранее я писал о том, как можно добавить значок состояния для вашего приложения в панели задач Windows 7. Мы рассматривали статические изображения для этих целей. Напомню, что для этого мы использовали метод SetTaskbarOverlayIcon, в параметрах которого передается ссылка на Icon.
Однако, один из читателей блога предложил другой сценарий, в котором на месте дополнительной иконки отображается какая-то информация. К примеру, это может быть текущая скорость закачки, если ваше ПО что-то загружает по сети. Либо это может быть количество новых писем в почтовом ящике, если это почтовый клиент. Примеров можно много привести.
Напомню, что для того, чтобы задать статическое изображение необходимо выполнить следующий код.
В качестве второго параметра здесь передается объект Icon. Однако кто нам мешает генерировать этот объект динамически? Давайте воспользуемся нехитрым кодом и сделаем это. Я создам метод, который будет генерировать такое изображение и покажу эту иконку.
Таким образом, при помощи метода BuildIcon будет сгенерирована новая иконка, которая будет отображена на панели задач.
На данном скриншоте хорошо видно, что к стандартному значку мы добавили текст и отобразили это на панели задач.
В демонстрационном приложении я создал таймер, который имитирует работу менеджера загрузки, выдавая постоянно разную “скорость” закачки.
Демонстрационное приложение:
Taskbar-CustomIcons.zip
Однако, один из читателей блога предложил другой сценарий, в котором на месте дополнительной иконки отображается какая-то информация. К примеру, это может быть текущая скорость закачки, если ваше ПО что-то загружает по сети. Либо это может быть количество новых писем в почтовом ящике, если это почтовый клиент. Примеров можно много привести.
Напомню, что для того, чтобы задать статическое изображение необходимо выполнить следующий код.
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