Основные сведения о командах и элементах управления

Отделение логики от представления — это философия проектирования, которая вдохновляет систему представления команд платформы ленты Windows — систему, основанную на шаблоне проектирования, где функции и поведение реализуются независимо от элементов управления, которые предоставляют эту функциональность.

Введение

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

Командная система ленты Windows

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

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

Элементы управления

Элементы управления — это объекты пользовательского интерфейса, необходимые для представления команд. Они отрисовываются и управляются во время выполнения платформой на основе взаимодействия с пользователем и набора свойств и поведений.

Гибкость пользовательского интерфейса, управляемая платформой, называется адаптивной структурой, является одним из преимуществ ленты. Элементы управления ленты могут автоматически перенастраиваться с помощью шаблонов макетов, зависимых от платформы или определяемых разработчиком, которые могут реагировать на различные требования времени выполнения без написания ни одной строки кода презентации. Дополнительные сведения см. в разделе Настройка ленты с помощью определений размера и политик масштабирования.

Помимо преимуществ адаптивного макета, ряд сложных элементов управления ленты предоставляют автономные решения для конкретных проблем пользовательского интерфейса. Благодаря сложной модели взаимодействия элементы управления ленты, такие как FontControl или ColorPicker, предоставляют возможность управлять данными в более абстрактных терминах с помощью пакетов свойств с фактическими атрибутами шрифта или цвета, а не с помощью различных вложенных элементов управления, перечислений и значений индекса стандартных элементов управления Windows.

Команды

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

Команды объявляются в разметке ленты с уникальным идентификатором или присваиваются идентификатору, созданному компилятором разметки при компиляции. Команды связаны с элементами управления с помощью имени команды, но, в отличие от элементов управления, их фактическая функциональность определяется в коде, где они привязаны к определенным обработчикам команд с помощью идентификатора команды.

Примечание

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

 

Каждая команда имеет базовый тип Command, элементизованный в перечислении UI_COMMANDTYPE .

Взаимодействие с командой в действии

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

На следующем рисунке показан элемент управления Paste и Paste from Commands, представленный элементом управления SplitButton , на ленте Windows 7 Paint.

изображение кнопки разделения вставки на ленте Microsoft Paint.

На следующем рисунке показаны те же элементы Paste и Paste from Commands, которые по-прежнему представлены элементом управления SplitButton , в QAT ленты Windows 7 Paint.

Изображение кнопки разделения вставки в qat Microsoft Paint.

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

Примечание

Те же преимущества реализуются при включении команд в ContextPopup во время разработки. В этом случае можно использовать обработчики команды вставки независимо от того, отображается ли элемент управления SplitButton на ленте, в QAT или ContextPopup.

 

Знакомство с Платформой ленты Windows

Создание приложения ленты

Объявление команд и элементов управления с помощью разметки ленты