拖放
drag-drop feature 用来启用系统拖放事件。启用后,控件可以通过事件 builder 接收拖入、悬停、离开和释放。
基本写法
拖放是事件能力,入口在 事件 Builder。
事件:
完整签名和当前派发状态见 Handler API 的拖放事件。
相关类型
拖放事件会直接遇到这些类型:
on_drag_enter(...) 和 on_drag_over(...) 拿到的是 &[DragFormat],适合先判断能不能接收;on_drop(...) 拿到的是 &DragData,适合读取真正的数据。
DropEffect
DropEffect 用来告诉系统当前控件准备如何处理拖放内容。取值包括:
在 on_drag_enter、on_drag_over 和 on_drop 里可以通过 &mut DropEffect 修改反馈。
DragFormat 和 DragData
DragFormat 用于进入和悬停阶段,表示当前拖放对象声明自己可以提供哪些格式:
DragData 用于最终释放阶段,表示真正交给控件的数据:

