如何在 MAUI 中为 UI 元素添加上下文菜单?

4
下面的代码无法正常工作,错误信息为XLS0415,附加属性 'ContextActions' 在类型 'Grid' 中未找到,并且 "类型 'FlyoutBase' 未找到"。
<Grid.ContextActions>
    <MenuItem Text="Test"/>
    <MenuItem Text="Test 2"/>
</Grd.ContextActions>

<FlyoutBase.ContextFlyout>
    <MenuFlyout>
        <MenuFlyoutItem/>
    </MenuFlyout>
</FlyoutBase.ContextFlyout>

请参考以下链接了解更多信息:https://learn.microsoft.com/zh-cn/dotnet/maui/user-interface/menubar - Bas H
1个回答

4
ContextActions 只能在 ListView 单元格中使用(请参见此处)。这允许在 iOS 上滑动以显示一些按钮,在 Android 上长按上下文菜单,但仅适用于这些单元格。
如果您想在其他元素上使用它,可以查看SwipeView
对于桌面右键单击,我们正在开发类似的上下文菜单,并且应该在 .NET 7 中准备就绪。

这可能不是提问的合适场所,但为什么只有桌面端?Android 已经有了 PopupMenu 一段时间了,这也是我在 MAUI Android 应用中不得不使用的。有点傻,我不得不创建一个“ContextMenuService”,它只是创建一个新的 PopupMenu 并调用 Show()。结果是我们在桌面环境中已经习惯了 20 多年的上下文菜单类型,并且在移动设备上变得越来越流行。ListView ContextActions 在 Android 上非常糟糕。 - pizza_coder
我认为它也已经适用于Android操作系统。 - Gerald Versluis
现在官方文档中已经有了这个内容:“上下文菜单,通常称为右键菜单,提供与被点击控件相关的上下文命令。在 .NET Multi-platform App UI (.NET MAUI) 中,可以在 Mac Catalyst 和 Windows 上向任何从 Element 派生的控件添加上下文菜单。这包括所有页面、布局和视图。” https://learn.microsoft.com/en-us/dotnet/maui/user-interface/context-menu?view=net-maui-7.0 - sith
@GeraldVersluis 如果一个人被困在 .net6 中,那么在 Windows 上实现工作上下文菜单的首选方法是什么(不包括 ListView)?我不明白 SwipeView 如何有帮助。 - sith
SwipeView 在 Windows 上仍然不可用。 - sinsedrix
SwipeView并不是一个真正的桌面元素。现在我们在Windows上有了上下文菜单(右键点击):https://youtu.be/o35BEuIC-uA - Gerald Versluis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接