コントロール パターンのドラッグ

プロパティとメソッドに関する情報など、IDragProvider を使用してドラッグ コントロール パターンを実装するためのガイドラインと規則を提供します。 ドラッグ コントロール パターンは、ドラッグ可能なコントロール、またはドラッグ可能な項目を含むコントロールをサポートするために使用されます。

実装のガイドラインと規則

ドラッグ コントロール パターンを実装する場合は、次のガイドラインと規則を使用します。

  • IDragProvider インターフェイスでは、ソース/ターゲット スタイルとソースのみのスタイルの 2 つの異なるドラッグ スタイルがサポートされています。 ドラッグ アンド ドロップのシナリオに最適なスタイルを選択する必要があります。
    • ソース/ターゲット のスタイル: 考えられる各ドロップ ターゲットは、 IDropTargetProvider インターフェイスを実装する要素によって表されます。 ドラッグ操作中、Microsoft UI オートメーション イベントは、ドラッグされる要素とドロップターゲット要素から発生します。
    • ソースのみのスタイル:ドロップ ターゲットは、UI オートメーション要素では表されません。 ドラッグ操作中、イベントはドラッグされる要素からのみ発生します。
  • IDragProvider は、ドラッグ操作の監視を目的とした読み取り専用インターフェイスです。 ドラッグ操作を制御するために使用することはできません。 マウス入力をコントロールに送信することで、ドラッグ操作を自動化できます。
  • IDragProvider::IsGrabbed プロパティが必要です。
  • IDragProvider::D ropEffect プロパティと IDragProvider::D ropEffects プロパティは、ソースのみのスタイル実装に必要であり、ソース/ターゲット スタイルの実装では禁止されています。 ソース/ターゲット スタイルの実装では、ドロップターゲット要素に対してドロップ効果のクエリを実行できます。
  • IDragProvider::GrabbedItems プロパティは、複数の項目のドラッグを表します。 ユーザーがドラッグ操作を開始したら、イベント ソース要素として機能する新しい UI オートメーション 要素を作成する必要があります。 この新しい要素は、ソース/ターゲットモードまたはソースのみのモードでソース要素が発生したすべてのイベントを発生させますが、実際にドラッグされている要素はいずれもイベントを発生させます。 ドラッグ操作が完了したら、イベント ソース要素を破棄します。
  • 要素は、変更時に DropEffect (UIA_DragDropEffectPropertyId) プロパティと DropEffects (UIA_DragDropEffectsPropertyId) プロパティのプロパティ変更イベントを発生する必要があります。 他のプロパティのプロパティ変更イベントは許可されますが、必要な DragStart (UIA_Drag_DragStartEventId)、 DragCancel (UIA_Drag_DragCancelEventId)、 DragComplete (UIA_Drag_DragCompleteEventId) イベントから推論できます。

IDragProvider の必須メンバー

IDragProvider インターフェイスを実装するために、次のプロパティとメソッドが必要です。

必須メンバー メンバーの型 メモ
IsGrabbed プロパティ なし
DropEffect プロパティ ソースのみのスタイルの実装に必要です。
DropEffects プロパティ つかんだアイテムのドロップ効果が複数ある場合は必須です。
GetGrabbedItems メソッド 複数項目のドラッグ操作に必要です。
UIA_Drag_DragStartEventId イベント なし
UIA_Drag_DragCancelEventId イベント なし
UIA_Drag_DragCompleteEventId イベント なし

 

コントロール型とそのサポートされているコントロール パターン

DropTarget コントロール パターン

UI オートメーション コントロール パターンの概要

UI オートメーション ツリーの概要

ドラッグ アンド ドロップのUI オートメーションサポート