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

На этот раз мы поговорим о другой особенности панели задачи Windows 7 – OverlayIcon. Эта возможность исключительно полезна для приложений, которые обладают каким-то состоянием с точки зрения пользователя.

К таким приложениям можно отнести программы для обмена мгновенными сообщениями (IM). Например, Windows Live Messanger активно использует эту возможность. Например, если мы откроем WLM и будем изменять состояние, то можно увидеть как оно отображается на панели задач.

Такая функциональность может быть полезна для множества приложений. К счастью реализовать ее не так сложно. Как и в предыдущих примерах мы воспользуемся библиотекой .NET Interop Sample Library.

Чтобы добавить иконку состояния к основному значку приложения, необходимо добавить файл ресурсов в проект и разместить там нужные иконки. Также, мы можем получить объекты Icon из другого места, если это необходимо.

Теперь все, что необходимо сделать – это воспользоваться методами расширения, позволяющими задавать иконки для нашего приложения. Для этих целей определен метод SetTaskbarOverlayIcon. Мы должны передать ему в параметрах нашу форму, иконку и описание. Т.о., установка новой иконки из кода будет выглядеть следующим образом.

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

Также мы можем удалить этот значок. Для этого необходимо передать значение null вместо самой иконки.

WindowsFormsExtensions.SetTaskbarOverlayIcon(this, null, String.Empty);

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

При нажатии на каждую из кнопок переключается состояние, которое отображается в панели задач.