首页 > 解决方案 > Xamarin.Forms:独立于平台的应用程序菜单

问题描述

我正在编写一个 Xamarin.Forms 桌面应用程序,我最终希望以 MacOS 和 Windows 为目标。Xamarin.Forms 是否具有任何可用于构建应用程序菜单的独立于平台的机制(即您可以找到“文件”、“编辑”、“视图”等的机制;并且它出现在顶部的 MacOS 菜单栏中屏幕)?我发现最多的是Xamarin.Forms.MenuandXamarin.Forms.MenuItem类,但我不清楚它们实际做什么或如何使用它们。

标签: c#xamarinxamarin.formsxamarin.mac

解决方案


虽然,Xamain 表单不能直接用你说的方法来做。

包 Microsoft.Toolkit.Uwp.UI.Controls 5.0.0 与 netstandard2.0 >>(.NETStandard,Version=v2.0) 不兼容。

但是,将此 NuGet 包添加到 UWP,您可以尝试使用自定义ViewRenderer来执行此操作。

https://docs.microsoft.com/en-us/windows/communitytoolkit/controls/menu

像这样的代码:

<Grid>
    <controls:Menu>
        <controls:MenuItem Name="FileMenu"
    controls:Menu.InputGestureText="Alt+F"
    Header="File">

            <MenuFlyoutSubItem Text="New">
                <MenuFlyoutItem controls:Menu.InputGestureText="Ctrl+Shift+N"
            Text="Project" />

                <MenuFlyoutItem controls:Menu.InputGestureText="Ctrl+N"
            Text="File" />
            </MenuFlyoutSubItem>
        </controls:MenuItem>
    </controls:Menu>
</Grid>

在此处输入图像描述

最后的结果是这样的。

在此处输入图像描述


推荐阅读