UI 自动化支持拖放

Microsoft UI 自动化为支持拖放方案、 拖动 控件模式和 DropTarget 控件模式定义了两个控件模式。 您可以为可被拖动的元素实现拖动控件模式,并为可以接收拖动元素的元素实现 DropTarget 控件模式;也就是说,拖放目标。 这两个控件模式公开信息,辅助技术可使用这些信息来帮助辅助功能用户完成拖放操作。

拖动样式

为可拖动元素实现 拖动 控件模式时,需要决定是实现 源/目标 拖动样式,还是 仅实现仅限源 的拖动样式。

源/目标样式

在拖放的源/目标样式中,拖动的元素 ("source" ) ,而 "target" ) (放置目标元素是不同的,并且每个元素都将引发一组不同的事件。 下面是使用源/目标样式的拖动操作的生命周期:

当用户启动拖动操作时:

拖动操作进入目标区域时:

拖动操作离开目标区域时:

当用户释放非目标上的拖动项时:

当用户在目标上释放拖动的项时:

来自源对象和目标对象的事件密切相关,但却是 distinct。 要拖动的数据来自源,而有关 "发生的情况" 和 "发生了什么" 的数据来自目标。

正在进行拖动操作时,可以在操作完成之前将拖动的项拖入和移出目标区域任意次。

需要动态更新其 IDropTargetProvider:D: roptargeteffect 属性的任何放置目标都应该引发该属性的其他属性更改事件。

仅限源样式

仅限源的拖动样式使提供程序避免实现拖放目标。 不实现拖放目标有助于降低实现成本,但不会向具有辅助功能的客户端应用程序授予有关接收到的对象的任何信息。 下面是使用仅限源样式的拖动操作的生命周期:

当用户启动拖动操作时:

拖动操作进入目标区域时:

拖动操作离开目标区域时:

当用户释放非目标上的拖动项时:

当用户在目标上释放拖动的项时:

拖动多个项

如果提供程序实现了拖放操作,用户可以在其中同时拖动多个对象,则提供程序将使用上一节中所述的源/目标或仅限源的样式,但差别略有不同。 当用户开始拖动操作时,提供程序会创建一个主源元素,该元素表示正在拖动的项的完整集合。 主源元素代表一组拖动项引发所有事件;这些项不会引发自己的任何事件。

当用户启动拖动操作时:

对于此点,主源元素与源元素相同,如前一部分中所述。

拖放的客户端接口

UI 自动化客户端应用程序使用 IUIAutomationDragPatternIUIAUTOMATIONDROPTARGETPATTERN 接口访问 UI 元素中的拖放信息。