Bagikan melalui


Dukungan Automasi UI untuk Drag-and-Drop

Microsoft UI Automation mendefinisikan dua pola kontrol untuk mendukung skenario seret dan letakkan, pola kontrol Seret , dan pola kontrol DropTarget . Anda menerapkan pola kontrol Seret untuk elemen yang dapat diseret, dan pola kontrol DropTarget untuk elemen yang dapat menerima elemen yang diseret; yaitu, target jatuh. Dua pola kontrol mengekspos informasi yang dapat digunakan teknologi bantuan untuk membantu pengguna aksesibilitas menyelesaikan operasi seret dan letakkan.

Gaya Penyeretan

Saat Anda menerapkan pola kontrol Seret untuk elemen yang dapat diseret, Anda perlu memutuskan apakah akan mengimplementasikan gaya seret sumber/target , atau gaya seret sumber saja .

Gaya Sumber/target

Dalam gaya sumber/target seret dan letakkan, elemen yang diseret ("sumber") dan elemen drop-target ("target") berbeda, dan masing-masing menimbulkan serangkaian peristiwa yang berbeda. Berikut adalah siklus hidup untuk operasi seret yang menggunakan gaya sumber/target:

Saat pengguna memulai operasi seret:

Saat operasi seret memasuki wilayah target:

Saat operasi seret meninggalkan wilayah target:

Saat pengguna merilis item yang diseret melalui non-target:

Saat pengguna merilis item yang diseret ke target:

Peristiwa dari objek sumber dan target terkait erat, tetapi berbeda. Data tentang apa yang diseret berasal dari sumbernya, sementara data tentang "apa yang bisa terjadi" dan "apa yang terjadi" berasal dari target.

Saat operasi seret sedang berlangsung, item yang diseret dapat diseret masuk dan keluar dari wilayah target beberapa kali sebelum operasi selesai.

Setiap target penurunan yang perlu memperbarui properti IDropTargetProvider::D ropTargetEffect dengan cepat harus meningkatkan peristiwa perubahan properti tambahan pada properti tersebut.

Gaya Sumber-saja

Gaya seret sumber saja memungkinkan penyedia menghindari penerapan target penurunan. Tidak menerapkan target penurunan membantu menurunkan biaya implementasi, tetapi tidak memberikan informasi apa pun kepada aplikasi klien aksesibilitas tentang objek yang menerima penurunan. Berikut adalah siklus hidup untuk operasi seret yang menggunakan gaya sumber saja:

Saat pengguna memulai operasi seret:

Saat operasi seret memasuki wilayah target:

Saat operasi seret meninggalkan wilayah target:

Saat pengguna merilis item yang diseret melalui non-target:

Saat pengguna merilis item yang diseret ke target:

Menyeret Beberapa Item

Jika penyedia menerapkan operasi seret dan letakkan di mana pengguna dapat menyeret beberapa objek secara bersamaan, penyedia menggunakan gaya sumber/target atau sumber-saja seperti yang dijelaskan di bagian sebelumnya, tetapi dengan perbedaan kecil. Saat pengguna memulai operasi seret, penyedia membuat elemen sumber master yang mewakili set lengkap item yang sedang diseret. Elemen sumber master menaikkan semua peristiwa atas nama sekumpulan item yang diseret; item tidak memunculkan peristiwa apa pun sendiri.

Saat pengguna memulai operasi seret:

  • Penyedia membuat elemen sumber master.
  • Elemen sumber master menaikkan peristiwa DragStart (UIA_Drag_DragStartEventId).
  • Elemen sumber master mengatur properti IDragProvider::IsGrabbed ke TRUE.
  • Elemen sumber master memperbarui daftar item yang diambil untuk menyertakan semua item yang diseret sehingga metode GetGrabbedItems dapat mengambil daftar.

Untuk titik tersebut, elemen sumber master melakukan peran yang sama dengan elemen sumber seperti yang dijelaskan di bagian sebelumnya.

Antarmuka Klien untuk Seret dan Letakkan

Aplikasi klien Automation UI menggunakan antarmuka IUIAutomationDragPattern dan IUIAutomationDropTargetPattern untuk mengakses informasi seret dan letakkan dari elemen UI.