Seret Pola Kontrol
Menyediakan panduan dan konvensi untuk menerapkan pola kontrol Seret 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.
Panduan dan Konvensi Implementasi
Saat menerapkan pola kontrol Seret , gunakan panduan dan konvensi ini:
- Antarmuka IDragProvider mendukung 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 antarmuka IDropTargetProvider . Selama operasi seret, peristiwa Otomatisasi UI Microsoft berasal dari elemen yang sedang diseret, dan dari elemen drop-target.
- Gaya sumber-saja: Target penurunan 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.
- Properti IDragProvider::D ropEffect dan IDragProvider::D ropEffects 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 peristiwa DragStart (UIA_Drag_DragStartEventId) yang diperlukan, DragCancel (UIA_Drag_DragCancelEventId), dan DragComplete (UIA_Drag_DragCompleteEventId).
Anggota yang Diperlukan untuk IDragProvider
Properti dan metode berikut diperlukan untuk mengimplementasikan antarmuka IDragProvider .
Anggota yang diperlukan | Jenis anggota | Catatan |
---|---|---|
IsGrabbed | Properti | Tidak ada |
DropEffect | Properti | Diperlukan untuk implementasi gaya sumber-saja. |
DropEffects | Properti | Diperlukan jika ada lebih dari satu kemungkinan efek penurunan untuk item yang diambil. |
GetGrabbedItems | Metode | Diperlukan untuk operasi seret beberapa item. |
UIA_Drag_DragStartEventId | Kejadian | Tidak ada |
UIA_Drag_DragCancelEventId | Kejadian | Tidak ada |
UIA_Drag_DragCompleteEventId | Kejadian | Tidak ada |
Topik terkait