Опишем некоторые возможности по работе с панелью задач Windows 7, доступные в приложениях WPF. Список переходов (jump list) – это мини-меню, которое открывается при щелчке правой кнопкой мыши на иконке приложения в панели задач. Для работы со списком переходов в приложении WPF применяются классы JumpList (список переходов), JumpPath (путь к документу в списке переходов) и JumpTask (команда в списке) из пространства имён System.Windows.Shell:
// этот код размещён в конструкторе главного окна
// создаём и настраиваем команду для списка переходов
var jumpTask = new JumpTask();
jumpTask.Title = "Notepad";
jumpTask.Description = "Open Notepad";
jumpTask.ApplicationPath = @"%WINDIR%\system32\notepad.exe";
jumpTask.IconResourcePath = @"%WINDIR%\system32\notepad.exe";
// создаём сам список переходов, добавляем в него команду
var jumpList = new JumpList();
jumpList.JumpItems.Add(jumpTask);
// связываем список с текущим приложением
JumpList.SetJumpList(Application.Current, jumpList);
Класс JumpTask описывает команду, выполнение которой влечёт запуск заданного приложения. Класс имеет следующие свойства:
CustomCategory – категория, к которой относится команда.
|
|
Title – название команды;
Description – всплывающая подсказка;
IconResourcePath и IconResourceIndex – файл с иконкой и индекс иконки в файле для отображения в списке переходов;
ApplicationPath – путь к исполняемому файлу нужного приложения;
WorkingDirectorу – рабочий каталог для приложения;
Arguments – параметры командной строки для приложения.
У класса JumpPath для настройки доступны два свойства. Строка CustomCategory указывает категорию, к которой относится JumpPath. Свойство Path задаёт полный путь к файлу документа. При этом файл должен существовать, а его тип должен соответствовать типу файлов, за обработку которых отвечает данное приложение.
Для задания списка переходов в XAML используется присоединённое свойство JumpList.JumpList:
<Application x:Class="WpfLayout.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<JumpList.JumpList>
<JumpList>
<JumpTask Title="Notepad" Description="Open Notepad"
ApplicationPath="%WINDIR%\system32\notepad.exe"
IconResourcePath="%WINDIR%\system32\notepad.exe" />
<JumpPath Path="C:\Pictures\Cat.jpg" />
</JumpList>
</JumpList.JumpList>
</Application>
Класс Window имеет свойство TaskbarItemInfo, которое даёт доступ к иконке окна на панели задач. В следующем примере показан один из вариантов использования TaskbarItemInfo – на иконке отображается индикатор прогресса:
<Window.TaskbarItemInfo>
<TaskbarItemInfo ProgressValue="0.3" ProgressState="Paused" />
</Window.TaskbarItemInfo>