Seret Pola Kontrol
Menyediakan panduan dan konvensi untuk menerapkan pola kontrol Drag dengan menggunakan IDragProvider, termasuk informasi tentang properti dan metode. Pola kontrol Seret digunakan untuk mendukung kontrol yang dapat diseret, atau kontrol dengan item yang dapat diseret.
Pedoman dan Konvensi Implementasi
Saat menerapkan pola kontrol Seret, gunakan panduan dan konvensi ini:
- AntarmukaIDragProvidermendukung dua gaya seret yang berbeda: gaya sumber/target, dan gaya sumber saja. Anda perlu memilih gaya yang paling sesuai untuk skenario seret dan letakkan Anda:
- Gaya sumber/target: Setiap target penurunan yang mungkin diwakili oleh elemen yang mengimplementasikan antarmukaIDropTargetProvider. Selama operasi seret, peristiwa Microsoft UI Automation berasal dari elemen yang sedang diseret, dan dari elemen drop-target.
- Gaya sumber saja: target Drop tidak diwakili oleh elemen Automation UI. Selama operasi seret, peristiwa hanya berasal dari elemen yang sedang diseret.
- IDragProvider adalah antarmuka baca-saja yang ditujukan untuk memantau operasi seret. Anda tidak dapat menggunakannya untuk mengontrol operasi seret. Anda dapat mengotomatiskan operasi seret dengan mengirim input mouse ke kontrol.
- Properti IDragProvider::IsGrabbed diperlukan.
- IDragProvider::D ropEffect dan IDragProvider::D ropEffects properti diperlukan untuk implementasi gaya sumber saja, dan dilarang untuk implementasi gaya sumber/target. Dalam implementasi gaya sumber/target, elemen drop-target dapat dikueri untuk efek penurunannya.
- Properti IDragProvider::GrabbedItems mewakili penyeretan beberapa item. Saat pengguna memulai operasi seret, Anda perlu membuat elemen Automation UI baru untuk berfungsi sebagai elemen sumber peristiwa. Elemen baru ini mengaktifkan semua peristiwa yang akan diaktifkan elemen sumber dalam mode sumber/target atau sumber saja, sementara tidak ada elemen yang benar-benar diseret menembakkan peristiwa apa pun. Saat operasi seret selesai, hancurkan elemen sumber peristiwa.
- Elemen harus mengaktifkan peristiwa yang diubah properti untuk properti DropEffect (UIA_DragDropEffectPropertyId) dan DropEffects (UIA_DragDropEffectsPropertyId) saat berubah. Peristiwa yang diubah properti untuk properti lain diizinkan, tetapi dapat disimpulkan dari dragStart (UIA_Drag_DragStartEventId), dragCancel (UIA_Drag_DragCancelEventId), dan peristiwa DragComplete (UIA_Drag_DragCompleteEventId).
Anggota yang Diperlukan untuk IDragProvider
Properti dan metode berikut diperlukan untuk mengimplementasikan antarmukaIDragProvider.
Anggota yang diperlukan | Jenis anggota | Catatan |
---|---|---|
IsGrabbed | Harta benda | Tidak |
DropEffect | Harta benda | Diperlukan untuk implementasi gaya sumber saja. |
DropEffects | Harta benda | Diperlukan jika ada lebih dari satu kemungkinan efek penurunan untuk item yang diambil. |
GetGrabbedItems | Metode | Diperlukan untuk operasi seret beberapa item. |
UIA_Drag_DragStartEventId | Peristiwa | Tidak |
UIA_Drag_DragCancelEventId | Peristiwa | Tidak |
UIA_Drag_DragCompleteEventId | Peristiwa | Tidak |
Topik terkait
-
Dukungan Automasi UI untuk Seret dan Letakkan