Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технология Windows Presentation Foundation.docx
Скачиваний:
44
Добавлен:
18.08.2019
Размер:
850.41 Кб
Скачать

5.4. Приложения xbap

Приложения ХВАР (XAML Browser Application) – это приложения, которые выполняются внутри браузера. Приложения ХВАР являются полноценными приложениями WPF, но имеют несколько особенностей:

1. Приложение ХВАР отображается в окне браузера, но запускается в виде отдельного процесса, управляемого CLR. Следовательно, на компьютере клиента должен быть установлен .NET Framework версии 3.0 или выше.

2. Приложению ХВАР предоставляются те же разрешения, что и приложению .NET, которое запускается из интернета или локальной интрасети. Это означает, что по умолчанию приложение ХВАР не может записывать файлы, взаимодействовать с ресурсами компьютера, подключаться к базам данных или отображать полнофункциональные окна.

3. Приложению ХВАР не инсталлируются. При запуске приложения загружаются с сервера или локального диска и помещаются в кэш браузера.

Visual Studio предлагает для приложения ХВАР шаблон WPF Browser Application. Создав проект по этому шаблону, можно приступать к разработке страниц точно так же, как и при использовании NavigationWindow. Для развёртывания готового приложения XBAP на веб-сервер нужно скопировать в виртуальный каталог следующие файлы:

Имя-Приложения.ехе – файл содержит скомпилированный IL-код.

Имя-Приложения.ехе.manifest – XML-документ с перечнем требований данного приложения (например, версий .NET-сборок).

Имя-Приложения.xbap. – точка входа в приложение; это файл пользователь должен запросить в браузере, чтобы установить данное приложение ХВАР.

Самое сложное при создании приложения ХВАР – оставаться в рамках ограниченной модели безопасности. Один из простых способов узнать, разрешено ли выполнение того или иного действия – написать какой-то тестовый код и испробовать его. Также все необходимые детали можно найти в документации по WPF.

5.5. Работа с панелью задач Windows 7

Опишем некоторые возможности по работе с панелью задач 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>