Acara Drag dikirim selama operasi di mana elemen visual memiliki perilaku drag dan drop. Ini adalah acara Editor-only.
Untuk menerapkan fungsionalitas drag and drop, pastikan bahwa elemen visual mendaftarkan callback untuk acara tertentu.
Elemen visual yang mendukung operasi drag terpisah menjadi dua jenis:
Anda dapat memilih elemen visual yang seret, tarik ke elemen visual yang dapat dijatuhkan, dan melepaskan elemen untuk menjatuhkannya.
Kelas dasar untuk semua peristiwa drag dan drop adalah DragAndDropEventBase.
| Event | Description | Trickles down | Bubbles up | Cancellable |
|---|---|---|---|---|
| Login Sitemap | Sent ketika proses drag dan drop berakhir. | ✔ | ✔ | |
| Login Sitemap | Sent ketika elemen seret bergerak di atas target drop. | ✔ | ✔ | ✔ |
| Login Sitemap | Sent ketika elemen seret turun ke target. | ✔ | ✔ | ✔ |
| Login Sitemap | Sent ketika elemen seret memasuki VisualElement baru. |
✔ | ||
| DragLeaveEvent | Sent ketika elemen seret keluar target drop saat ini. | ✔ |
Untuk membuat elemen visual seret, Anda perlu mendaftarkan callback pada tiga jenis acara berikut:
Gunakan langkah-langkah berikut untuk operasi drag:
DragAndDrop.DragAndDrop.StartDrag().DragPerformEvent atau DragExitedEvent.DragExitedEvent dikirim ketika pengguna menyeret objek seret di atas elemen visual dan melepaskan pointer mouse. Ketika elemen visual area drop menerima DragExitedEvent, perlu menghapus semua umpan balik dari operasi drag.
DragUpdatedEvent dikirim ketika pointer bergerak ke elemen visual sebagai pengguna memindahkan objek yang seret.
Ketika elemen visual daerah drop menerima DragUpdatedEvent, perlu untuk memperbarui umpan balik drop. Misalnya, Anda dapat memindahkan "ghost" objek yang seret sehingga tetap berada di bawah pointer mouse.
Elemen visual area drop juga harus memeriksa sifat DragAndDrop dan mengatur DragAndDrop.visualMode untuk menunjukkan efek operasi drop. Misalnya, operasi drop dapat membuat objek baru, memindahkan objek yang ada, atau menolak operasi drop.
DragPerformEvent dikirim ketika pengguna menyeret objek yang seret dan melepaskan pointer mouse atas elemen visual. Ini hanya terjadi jika elemen visual menetapkan DragAndDrop.visualMode untuk sesuatu selain DragAndDropVisualMode.None atau DragAndDropVisualMode.Rejected untuk menunjukkan bahwa itu dapat menerima benda-benda yang seret.
Ketika elemen visual daerah drop menerima DragPerformEvent, perlu bertindak pada objek seret yang disimpan dalam DragAndDrop.objectReferences, DragAndDrop.paths atau DragAndDrop.GetGenericData().
Misalnya, mungkin menambahkan elemen visual baru di lokasi di mana pengguna menjatuhkan objek.
DragEnterEvent dikirim ketika pointer memasuki elemen visual selama operasi drag.
Ketika elemen visual daerah drop menerima DragEnterEvent, perlu memberikan umpan balik yang memungkinkan pengguna tahu bahwa itu, atau salah satu anak-anaknya, adalah target untuk operasi drop potensial. Misalnya, Anda dapat menambahkan kelas USS ke elemen target dan menampilkan "ghost" objek seret di bawah pointer mouse.
DragLeaveEvent dikirim ketika pointer keluar elemen visual sebagai pengguna memindahkan objek yang seret.
Ketika elemen visual daerah drop menerima DragLeaveEvent, perlu berhenti memberikan umpan balik. Misalnya, Anda dapat menghapus kelas AS yang Anda tambahkan ketika elemen target menerima DragEnterEvent, dan tidak lagi menampilkan "ghost" dari objek seret.