Поделиться через


Архитектура средства

Обновлен: Ноябрь 2007

Пользователи работают с содержимым конструктора разными сложными способами. Например, пользователи могут взаимодействовать с областью разработки с помощью щелчков мыши, перетаскивания, перетаскивания с клавишами-модификаторами, клавиатуры или меню. Чтобы быть расширяемым, конструктор должен предоставлять базу для обработки всех этих типов взаимодействия. Windows Presentation Foundation (WPF) для Visual Studio (конструктор) обеспечивает гибкую и структурированную систему ввода, которая является расширяемой и согласованной. Пользовательская модель для архитектуры средства состоит из команд, задач и средств.

Команды

Команда — это уникальный идентификатор, представляющий определенное поведение. Примером может служить команда «Вырезать», которая определяет процесс вырезания текста или объекта и его добавления в буфер обмена. Код, в котором реализуется команда, может изменяться от приложения к приложению или даже внутри приложения, однако, команда остается постоянной. Все команды реализуют интерфейс ICommand.

В дополнение к самой команде существуют еще две вещи, которые необходимы для работы команды. Во-первых, команда требует некоторого вида входных данных пользователя (называемых жестом), запускающих команду. Например, сочетание клавиш CTRL+X или выбор пункта меню могут быть жестом, запускающим команды. Во-вторых, для команды требуется некоторая реализация в коде, который выполняется при вызове команды.

WPF предоставляет встроенную реализацию интерфейса ICommand, с именем RoutedCommand, которая передает сведения о входных данных пользователя обработчикам команды. WPF (конструктор) предоставляет другой тип команды с именем ToolCommand, который расширяет объем данных о состоянии конструктора, передаваемых в тип EventArgs обработчика команды

Задачи

Task — это объект, представляющий фактическую задачу, которая может произойти в конструкторе. Например, объектом Task можно представить перетаскивание элемента в конструкторе. Объект Task содержит три коллекции элементов:

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

  2. Коллекция привязок команд, обеспечивающих реализацию для стандартных команд, маршрутизируемых WPF;

  3. Коллекция привязок команд средства, обеспечивающих реализацию для команд средства WPF (конструктор).

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

Средства

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

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

См. также

Основные понятия

Архитектура вводимых пользователем данных и презентаций

Архитектура расширяемости конструктора WPF

Ссылки

Tool

Task

ToolCommand

ICommand