ドラッグ コントロール パターン
プロパティとメソッドに関する情報など、IDragProviderを使用して Drag コントロール パターンを実装するためのガイドラインと規則を提供します。 ドラッグ コントロール パターンは、ドラッグ可能なコントロール、またはドラッグ可能な項目を含むコントロールをサポートするために使用されます。
実装のガイドラインと規則
ドラッグ コントロール パターンを実装する場合は、次のガイドラインと規則を使用します。
-
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 | 出来事 | 何一つ |
関連トピック