Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проектирование пользовательского свойства, события или шаблона элемента управления должно быть полезным в различных реализациях элементов управления. Следует избегать проектов, относящихся к управлению или приложениям, которые полезны только в ограниченных сценариях. Проект должен соответствовать примеру существующих свойств, событий и элементов управления службы автоматизации пользовательского интерфейса Майкрософт, которые были тщательно указаны в соответствии с потребностями различных специальных возможностей и автоматизированных приложений тестирования.
Реализация спецификации пользовательского свойства, события или шаблона управления включает сотрудничество и соглашение сторон на стороне клиента и поставщика, и требует, чтобы обе стороны последовательно реализовали спецификацию. Компании рекомендуется работать с отраслевыми организациями, такими как Альянс по взаимодействию с специальными возможностями (AIA) для разработки и публикации спецификации для пользовательского свойства, события или шаблона управления. Таким образом, можно достичь консенсуса и обеспечить взаимодействие с самым широким спектром приложений.
Этот раздел состоит из следующих подразделов.
- Когда следует использовать пользовательские свойства и события
- Проектирование настраиваемых свойств
- Проектирование пользовательских событий
- Проектирование шаблонов пользовательского элемента управления
- Пользовательские типы элементов управления
- Связанные статьи
Когда следует использовать пользовательские свойства и события
Перед созданием пользовательского свойства, события или шаблона элемента управления убедитесь, что автоматизация пользовательского интерфейса не предоставляет существующее решение. Например, создание пользовательского шаблона элемента управления Click не требуется, так как шаблон элемента управления Invoke уже описывает эту функцию.
Если вы решите, что требуется пользовательское свойство, событие или шаблон элемента управления, убедитесь, что он не слишком расплывчатый или универсальный. Например, шаблон элемента управления с именем Show не полезен, так как видимость элемента управления может быть указана свойством доступности элемента, например 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 является рискованным, так как это может привести к столкновениям с другими приложениями или операционной системой, что приводит к нестабильной системе. Чтобы избежать конфликтов, корпорация Майкрософт определила несколько различных категорий WinEvents и для каждой категории определила один или несколько диапазонов значений для использования в качестве идентификаторов WinEvent. Дополнительные сведения см. в разделе "Выделение идентификаторов WinEvent".
Пользовательские события автоматизации пользовательского интерфейса избежать конфликтов путем выделения идентификатора события внутри платформы автоматизации пользовательского интерфейса.
Проектирование шаблонов пользовательского элемента управления
Шаблон элемента управления — это интерфейс со свойствами, методами и событиями, определяющими дискретную часть функциональности, доступную из элемента автоматизации. Методы шаблонов управления позволяют клиентам автоматизации пользовательского интерфейса управлять определенным аспектом элемента управления. Свойства и события шаблона элемента управления предоставляют сведения о некоторых аспектах элемента управления и предоставляют сведения о состоянии элемента автоматизации, реализующего шаблон элемента управления.
Шаблон пользовательского элемента управления должен соответствовать следующим рекомендациям по проектированию:
- Шаблон пользовательского элемента управления должен охватывать определенный сценарий. Например, шаблон элемента управления ItemContainer предназначен для запроса содержащегося объекта независимо от состояния виртуализации, но он не перечисляет или подсчитывает содержащиеся объекты.
- Шаблон пользовательского элемента управления не должен перекрываться с функциями существующих шаблонов элементов управления. Например, шаблоны элементов управления Invoke и ExpandCollapse не должны объединяться и представляться как новый шаблон элемента управления. Повторно используйте существующие шаблоны элементов управления или определите уникальные сценарии с новыми шаблонами элементов управления.
- Несколько шаблонов пользовательского элемента управления можно создать вместе для поддержки сложных сценариев. Например, шаблоны элементов управления Selection и SelectionItem работают вместе для поддержки общих сценариев выбора объектов.
Пользовательские типы элементов управления
Хотя в этом разделе основное внимание уделяется регистрации пользовательских свойств автоматизации пользовательского интерфейса, событий и шаблонов элементов управления, также можно ввести новые типы элементов управления. В отличие от пользовательских свойств, событий и шаблонов элементов управления, пользовательский тип элемента управления нельзя зарегистрировать программным способом во время выполнения, так как он фактически является потенциальным значением свойства ControlType службы автоматизации пользовательского интерфейса. Однако идентификатор пользовательского типа элемента управления можно определить, опубликовать и сделать доступным для других клиентов и поставщиков. Дополнительные сведения о типах элементов управления см. в разделе Типы элементов управления автоматизации пользовательского интерфейса.
Связанные темы
-
Концептуальный
-
регистрации настраиваемых свойств, событий и шаблонов элементов управления
-
Обзор шаблонов управления автоматизацией пользовательского интерфейса