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= 标签。
- 只允许一个直接子元素作为 Content(如不能直接放多个 Label,需用 StackLayout 包一层)
- 每个方向最多一组 SwipeItems,每组可含多个 SwipeItem(例如右滑弹出“标记”和“归档”两个按钮)
- SwipeItem 支持 Text、IconImageSource、BackgroundColor、Command/CommandParameter,还能响应 Invoked 事件
平台行为差异必须注意
SwipeView 在不同系统上默认交互逻辑不同,尤其 Windows 只响应触控,鼠标拖拽无效;iOS 和 Android 还提供两种展开动画模式:
- Reveal(默认):轻扫时内容不动,菜单项像“帘子”一样从边缘渐显
- Drag:轻扫时整个内容区域被拖动,菜单项随动滑入(更接近原生 iOS 邮件体验)
- XAML 中启用 Drag 模式需加平台特定命名空间,例如 iOS:
ios:SwipeView.SwipeTransitionMode="Drag" - C# 中调用:
swipeView.On<ios>().SetSwipeTransitionMode(SwipeTransitionMode.Drag)</ios>
常用交互控制技巧
除了用户手动滑动,你还可以用代码控制开关状态或监听过程:
标签: android windows ios win c# red
还木有评论哦,快来抢沙发吧~