共用方式為


拖曳控件模式

使用 IDragProvider,提供實作 拖曳 控件模式的指導方針和慣例,包括屬性和方法的相關信息。 拖曳 控件模式是用來支援可拖曳的控件,或具有可拖曳專案的控件。

實作指導方針和慣例

實作 拖曳 控件模式時,請使用下列指導方針和慣例:

  • IDragProvider 介面支援兩種不同的拖曳樣式:來源/目標樣式和僅限來源樣式。 您必須選擇最適合拖放案例的樣式:
    • 來源/目標樣式: 每個可能的置放目標都會以實作 IDropTargetProvider 介面的專案來表示。 在拖曳作業期間,Microsoft UI 自動化事件源自正在拖曳的專案,以及從置放目標元素。
    • 僅限來源的樣式: Drop 目標不是由 UI 自動化元素表示。 在拖曳作業期間,事件只源自正在拖曳的專案。
  • IDragProvider 是一個唯讀介面,用於監視拖曳作業。 您無法使用它來控制拖曳作業。 您可以將滑鼠輸入傳送至控件,將拖曳作業自動化。
  • 需要 IDragProvider::IsGrabbed 屬性。
  • IDragProvider::D ropEffectIDragProvider::D ropEffects 屬性是來源/目標樣式實作的必要屬性,而且禁止用於來源/目標樣式實作。 在來源/目標樣式實作中,可以查詢置放目標元素的卸除效果。
  • IDragProvider::GrabbedItems 屬性代表拖曳多個專案。 當使用者開始拖曳作業時,您必須建立新的UI自動化元素,以做為事件來源元素。 這個新元素會引發來源專案在來源/目標或僅限來源模式中引發的所有事件,而實際拖曳的任何專案都不會引發任何事件。 當拖曳作業完成時,終結事件來源專案。
  • 元素必須在變更時引發 DropEffectUIA_DragDropEffectPropertyId)和 DropEffectsUIA_DragDropEffectsPropertyId) 屬性的屬性變更事件。 允許其他屬性的屬性變更事件,但可以從所需的 DragStartUIA_Drag_DragStartEventId)、DragCancelUIA_Drag_DragCancelEventId) 和 DragCompleteUIA_Drag_DragCompleteEventId) 事件推斷。

IDragProvider 的必要成員

實作 IDragProvider 介面需要下列屬性和方法。

必要成員 成員類型 筆記
IsGrabbed 財產 沒有
DropEffect 財產 實作僅限來源樣式的必要專案。
DropEffects 財產 如果擷取的專案有一個以上的可能下降效果,則為必要專案。
GetGrabbedItems 方法 多專案拖曳作業的必要專案。
UIA_Drag_DragStartEventId 事件 沒有
UIA_Drag_DragCancelEventId 事件 沒有
UIA_Drag_DragCompleteEventId 事件 沒有

 

控件類型及其支援的控制模式

DropTarget 控制項模式

UI 自動化控制項模式概觀

UI 自動化樹狀結構概觀

拖放 的UI自動化支援