日历控件类型

本主题提供有关 Microsoft UI 自动化对 Calendar 控件类型的支持的信息。 日历控件允许用户轻松确定日期并选择其他日期。

以下部分定义了日历控件类型所需的UI 自动化树结构、属性、控件模式和事件。 UI 自动化要求适用于 UI 框架/平台集成UI 自动化控件类型和控件模式支持的所有日历控件。

本主题包含以下各节:

典型树结构

下表描述了与日历控件相关的UI 自动化树的典型控件和内容视图,并描述了每个视图中可以包含的内容。 有关 UI 自动化树的详细信息,请参阅 UI 自动化树概述

控件视图 内容视图
  • 日历
    • DataGrid
      • 标头(0 个或 1 个)
        • HeaderItem (0 或 7,数量取决于列中显示的天数)
      • ListItem(数量取决于显示了多少天)
      • Button(0 个或 2 个;用于对日历视图进行分页)
  • 日历
    • ListItem(数量取决于显示了多少天)

 

Calendar 控件可在用户界面中表示为多种不同的形式。 保证位于UI 自动化树的控件视图中的唯一控件是数据网格、标头、标头项和列表项控件。

相关属性

下表列出了值或定义与 Calendar 控件类型特别相关的UI 自动化属性。 有关UI 自动化属性的详细信息,请参阅从 UI 自动化 元素检索属性

UI 自动化属性 说明
UIA_AutomationIdPropertyId 请参阅注释。 此属性的值在UI 自动化树的原始视图中的所有对等元素中必须是唯一的。
UIA_BoundingRectanglePropertyId 请参阅注释。 包含整个控件的最外层矩形。
UIA_ClickablePointPropertyId 请参阅注释。 如果存在边界矩形,则受支持。 如果边界矩形中的每个点都是可单击的,并且元素执行专门的命中测试,请重写并提供可单击的点。
UIA_ControlTypePropertyId 日历 此值对于所有 UI 框架均相同。
UIA_IsContentElementPropertyId TRUE Calendar 控件始终包含在 UI 自动化树的内容视图中。
UIA_IsControlElementPropertyId TRUE Calendar 控件始终包含在 UI 自动化树的控件视图中。
UIA_IsKeyboardFocusablePropertyId 请参阅注释。 如果该控件可以接收键盘焦点,则它必须支持此属性。
UIA_LabeledByPropertyId 请参阅注释。 此属性的值应为文档控件的标签。 通常使用文档的标题。
UIA_LocalizedControlTypePropertyId 请参阅注释。 对应于 Calendar 控件类型的本地化字符串。 en-US 或英语 (美国) 的默认值为“calendar”。
UIA_NamePropertyId 请参阅注释。 日历控件通常从当前日期获取其名称。

 

所需的控件模式

下表列出了需要由所有 Calendar 控件支持的 UI 自动化控件模式。 有关控件模式的详细信息,请参阅 UI Automation Control Patterns Overview

控件模式/模式属性 支持/值 注释
IGridProvider 必须 日历控件始终支持 Grid 控件模式,因为一个月内的天数是可在空间上导航的项。
IScrollProvider 依赖的对象 大多数日历控件支持按页翻转视图。 建议使用 Scroll 控件模式来支持分页导航。
ISelectionProvider 依赖的对象 大多数日历控件保留特定的日期、月份或年份作为子元素的选择。 某些日历是多选的,而其他日历只能单选。 具有可选子元素的日历控件应支持 选择 控件模式。
ITableProvider 必须 由于日历控件在其子树中始终有一个标题,表示星期几,因此必须支持 控件模式。
IValueProvider 日历控件不需要 Value 控件模式,因为 元素不能直接在控件上设置值。 如果特定日期与控件相关联,则信息应由 Selection 控件模式提供。

 

必需事件

下表列出了日历控件需要支持的UI 自动化事件。 有关事件的详细信息,请参阅 F:System.Windows.Automation.AutomationElementIdentifiers.IsEnabledProperty

UI 自动化事件 说明
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 属性更改事件。
UIA_IsEnabledPropertyId 属性更改事件。 如果控件支持 IsEnabled 属性,则必须支持此事件。
UIA_IsOffscreenPropertyId 属性更改事件。 如果控件支持 IsOffscreen 属性,则必须支持此事件。
UIA_LayoutInvalidatedEventId
UIA_MultipleViewCurrentViewPropertyId 属性更改事件。 如果控件支持 MultipleView 控件模式的 CurrentView 属性,则必须支持此事件。
UIA_StructureChangedEventId
UIA_ScrollHorizontallyScrollablePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollHorizontalScrollPercentPropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollHorizontalViewSizePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollVerticalScrollPercentPropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollVerticallyScrollablePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollVerticalViewSizePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_Selection_InvalidatedEventId

 

概念性

UI 自动化控件类型概述

UI 自动化概述