Реализация шаблона элемента управления прокрутки модель автоматизации пользовательского интерфейса
Примечание.
Эта документация предназначена для разработчиков .NET Framework, желающих использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в статье API автоматизации Windows. Автоматизация пользовательского интерфейса.
В этой статье приводятся рекомендации и соглашения о реализации IScrollProvider, включая сведения о событиях и свойствах. Ссылки на дополнительные материалы перечислены в конце раздела.
Шаблон элемента управления ScrollPattern используется для поддержки элемента управления, который выступает в качестве прокручиваемого контейнера для коллекции дочерних объектов. Этому элементу управления не обязательно использовать полосы прокрутки для поддержки функции прокрутки, хотя обычно это делается.
Пример элемента управления прокрутки, который не использует полосы прокрутки
Примеры элементов управления, реализующих данный шаблон элемента управления, см. в разделе Control Pattern Mapping for UI Automation Clients.
Правила и соглашения реализации
При реализации шаблона элемента управления Scroll обратите внимание на следующие правила и соглашения.
Дочерние элементы данного элемента управления должны реализовывать IScrollItemProvider.
Полосы прокрутки контейнерного элемента управления не поддерживают шаблон элемента управления ScrollPattern . Вместо него они должны поддерживать шаблон элемента управления RangeValuePattern .
Если прокрутка измеряется в процентах, все значения или величины, связанные с делением шкалы прокрутки, должны быть нормализованы в диапазоне от 0 до 100.
СвойстваHorizontallyScrollableProperty и VerticallyScrollableProperty не зависят от IsEnabledProperty.
Если свойство HorizontallyScrollableProperty =
false
, то свойство HorizontalViewSizeProperty должно иметь значение 100 %, а свойство HorizontalScrollPercentProperty должно иметь значение NoScroll. Аналогично, если свойство VerticallyScrollableProperty =false
, то свойство VerticalViewSizeProperty должно иметь значение 100 %, а свойство VerticalScrollPercentProperty должно иметь значение NoScroll. Это позволяет клиенту модель автоматизации пользовательского интерфейса использовать эти значения свойств в методеSetScrollPercent, избегая условия гонки, если направление, которое клиент не заинтересован в прокрутке, активируется.HorizontalScrollPercent зависит от конкретного языка. Установка HorizontalScrollPercent = 100.0 должна задавать расположение прокрутки элемента управления в крайней правой позиции для таких языков, как английский, где чтение выполняется слева направо. И наоборот, для таких языков, как арабский, где чтение выполняется справа налево, установка HorizontalScrollPercent = 100.0 должен задавать расположение прокрутки в крайней левой позиции.
Обязательные члены для IScrollProvider
Следующие свойства и методы обязательны для реализации IScrollProvider.
Обязательный член | Тип члена | Примечания. |
---|---|---|
HorizontalScrollPercent | Свойство | нет |
VerticalScrollPercent | Свойство | нет |
HorizontalViewSize | Свойство | нет |
VerticalViewSize | Свойство | нет |
HorizontallyScrollable | Свойство | нет |
VerticallyScrollable | Свойство | нет |
Scroll | Способ | нет |
SetScrollPercent | Способ | нет |
Этот шаблон элемента управления не имеет связанных событий.
Исключения
Поставщики должны вызывать следующие исключения.
Тип исключения | Condition |
---|---|
ArgumentException | МетодScroll вызывает данное исключение, если элемент управления поддерживает значения SmallIncrement исключительно для горизонтальной или вертикальной прокрутки, но передано значение LargeIncrement . |
ArgumentException | МетодSetScrollPercent вызывает данное исключение, если передается значение, которое невозможно преобразовать к типу double. |
ArgumentOutOfRangeException | МетодSetScrollPercent создает исключение, если переданное значение меньше 0 или больше 100 (за исключением -1, что эквивалентно NoScroll). |
InvalidOperationException | Оба метода, Scroll и SetScrollPercent , вызывают это исключение при попытке прокрутки в неподдерживаемом направлении. |
См. также
- Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса
- Поддержка шаблонов элементов управления в поставщике автоматизации пользовательского интерфейса
- Шаблоны элементов управления модели автоматизации пользовательского интерфейса для клиентов
- Общие сведения о дереве модели автоматизации пользовательского интерфейса
- Использование кэширования в модели автоматизации пользовательского интерфейса