MAUI 的 SwipeView 是原生支持 iOS、Android 和 Windows 触控的侧滑菜单控件,需注意平台行为差异(如 Windows 不支持鼠标拖拽)、Drag/Reveal 动画模式设置、SwipeItems 方向限制及 SwipeStarted/Changing/Ended 事件监听。
MAUI 的 SwipeView 是实现侧滑菜单(比如左滑删、右滑标记)最直接的控件,它不依赖第三方库,原生支持 iOS、Android 和 Windows(触控模式),用法清晰但有几个关键点容易踩坑。
SwipeView 本质是一个“包装器”——它包裹一个主内容(如 Label、StackLayout),再通过 LeftItems/RightItems/TopItems/BottomItems 添加可触发的菜单项。Content 属性是隐式内容属性,不用写 Content= 标签。
SwipeView 在不同系统上默认交互逻辑不同,尤其 Windows 只响应触控,鼠标拖拽无效;iOS 和 Android 还提供两种展开动画模式:
ios
:SwipeView.SwipeTransitionMode="Drag"
swipeView.On().SetSwipeTransitionMode(SwipeTransitionMode.Drag)
除了用户手动滑动,你还可以用代码控制开关状态或监听过程:
swipeView.Open(OpenSwipeItem.Left) 或 .Close() 主动展开/收起SwipeStarted、SwipeChanging、SwipeEnded 三个事件,其中 SwipeEndedEventArgs 提供 IsOpen(是否最终打开了)和 SwipeDirection
Threshold 属性(double 类型)可调整触发完全展开所需的滑动距离,默认约 0.5,值越小越灵敏在 ListView 或 CollectionView 的 DataTemplate 中嵌入 SwipeView,是最典型场景:
后台 C# 中处理删除逻辑即可,注意 Invoked 事件里可通过 sender 或绑定上下文获取当前数据项。
基本上就这些。用好 SwipeView 不复杂,但得记清平台限制、动画模式选择和事件触发时机——特别是别在 Windows 上指望鼠标拖拽生效。