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


Разработка пользовательских свойств, событий и шаблонов элементов управления

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

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

Этот раздел состоит из следующих подразделов.

Когда следует использовать пользовательские свойства и события

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

Если вы решите, что требуется пользовательское свойство, событие или шаблон элемента управления, убедитесь, что они не являются слишком расплывчатыми или универсальными. Например, шаблон элемента управления "Показать" не полезен, так как видимость элемента управления может быть указана свойством доступности элемента, например UIA_IsExpandCollapsePatternAvailablePropertyId или UIA_IsScrollItemPatternAvailablePropertyId.

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

Проектирование пользовательских свойств

модель автоматизации пользовательского интерфейса включает два основных типа свойств: свойства элемента автоматизации и свойства шаблона элемента управления. Свойства элемента автоматизации состоят из общего набора свойств, таких как Name, AcceleratorKey и ClassName, которые предоставляются всеми модель автоматизации пользовательского интерфейса элементами, независимо от типа элемента управления. Свойства шаблона элемента управления предоставляются элементом управления с помощью определенного шаблона элемента управления. Каждый шаблон элемента управления имеет соответствующий набор свойств шаблона элемента управления, которые должен предоставлять элемент управления. Например, элемент управления, поддерживающий шаблон элемента управления Grid , предоставляет свойства ColumnCount и RowCount.

Пользовательское свойство элемента автоматизации или свойство шаблона элемента управления должно соответствовать следующим рекомендациям по проектированию.

  • Пользовательское свойство должно иметь один из следующих типов данных, указанных в перечислении UIAutomationType . Другие типы данных не поддерживаются для пользовательских свойств.
    • UIAutomationType_Bool
    • UIAutomationType_Double
    • UIAutomationType_Element
    • UIAutomationType_Int
    • UIAutomationType_Point
    • UIAutomationType_String
  • Если пользовательское свойство содержит строковые данные (BSTR), спецификация должна указывать, является ли свойство локализуемым (то есть может ли строка быть переведена на другие языки пользовательского интерфейса).
  • Пользовательское свойство не должно перекрываться с функциями или функциями существующих свойств.

Проектирование пользовательских событий

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

Пользовательское событие должно соответствовать следующим рекомендациям по проектированию:

  • Пользовательское событие должно быть "без отслеживания состояния". Его нельзя связать с определенным свойством или значением.
  • Пользовательское событие не должно перекрываться с определением или ролью любого существующего события.

Пользовательские события модель автоматизации пользовательского интерфейса и события WinEvents

События WinEvents — это полезный механизм межпроцессного взаимодействия и обработки событий на платформе Microsoft Windows. Однако введение нового идентификатора WinEvent является рискованным, так как это может привести к конфликтам с другими приложениями или операционной системой, что приведет к нестабильной работе системы. Чтобы избежать конфликтов, корпорация Майкрософт определила несколько различных категорий событий WinEvent и для каждой категории определила один или несколько диапазонов значений для использования в качестве идентификаторов Событий WinEvent. Дополнительные сведения см. в разделе Выделение идентификаторов WinEvent.

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

Проектирование пользовательских шаблонов элементов управления

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

Пользовательский шаблон элемента управления должен соответствовать следующим рекомендациям по проектированию:

  • Пользовательский шаблон элемента управления должен охватывать определенный сценарий. Например, шаблон элемента управления ItemContainer предназначен для запроса автономного объекта независимо от состояния виртуализации, но не перечисляет и не подсчитывает содержащиеся объекты.
  • Пользовательский шаблон элемента управления не должен перекрываться с функциями существующих шаблонов элементов управления. Например, шаблоны элементов управления Invoke и ExpandCollapse не следует объединять и представлять как новый шаблон элемента управления. Повторно используйте существующие шаблоны элементов управления или определите уникальные сценарии с новыми шаблонами элементов управления.
  • Для поддержки сложных сценариев можно создать несколько пользовательских шаблонов элементов управления. Например, шаблоны элементов управления Selection и SelectionItem работают вместе для поддержки общих сценариев выбора объектов.

Типы пользовательских элементов управления

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

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

Регистрация пользовательских свойств, событий и шаблонов элементов управления

Общие сведения о свойствах автоматизированного пользовательского интерфейса

Обзор событий автоматизации пользовательского интерфейса

Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса