XAML 在dotnet MAUI中有没有一个简单的方法来拥有一个层次菜单?

vyu0f0g1  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(141)

有没有一种方法可以在dotnet MAUI中拥有一个传统的分层菜单,这样当用户单击一个菜单项时就会出现一个子菜单,或者我应该完全重新考虑导航?请注意,该应用程序实际上只适用于Windows和Mac,尽管它可能在平板电脑上可用-当然不是手机。我尝试过的XAML(在后面的代码中使用了虚拟支持方法)是:

<ShellContent
    Title="Arguments"
    ContentTemplate="{DataTemplate local:ArgumentsPage}"
    Route="ArgumentsPage" />
<ShellContent
    Title="Architecture"
    ContentTemplate="{DataTemplate local:ArchitecturePage}"
    Route="ArchitecturePage"/>
<MenuFlyoutSubItem Text="File">
    <MenuFlyoutItem Text="New" Clicked="OnFileNewClicked"/>
    <MenuFlyoutItem Text="Open" Clicked="OnFileOpenClicked"/>
    <MenuFlyoutItem Text="Save" Clicked="OnFileSaveClicked" />
</MenuFlyoutSubItem>
<MenuFlyoutItem Text="Module" />
<MenuFlyoutItem Text="Settings" />

顶层菜单项出现,但当我点击“文件”时,我没有得到“新建”,“打开”和“保存”。
谢谢。

col17t5w

col17t5w1#

您可以将以下代码添加到.xaml中:

<!-- in AppShell.xaml -->
<Shell.MenuBarItems>
        <MenuBarItem Text="File">
            <MenuFlyoutItem Text="New" Clicked="OnFileNewClicked"/>
            <MenuFlyoutItem Text="Open" Clicked="OnFileOpenClicked"/>
            <MenuFlyoutItem Text="Save" Clicked="OnFileSaveClicked" />
        </MenuBarItem>
        <MenuBarItem Text="Module" />
        <MenuBarItem Text="Settings" />
</Shell.MenuBarItems>

<!-- or in Page.xaml -->
<ContentPage.MenuBarItems>
        <MenuBarItem Text="File">
            <MenuFlyoutItem Text="New" Clicked="OnFileNewClicked"/>
            <MenuFlyoutItem Text="Open" Clicked="OnFileOpenClicked"/>
            <MenuFlyoutItem Text="Save" Clicked="OnFileSaveClicked" />
        </MenuBarItem>
        <MenuBarItem Text="Module" />
        <MenuBarItem Text="Settings" />
</ContentPage.MenuBarItems>

记住不要添加Shell.NavBarIsVisible="False"。这是effect

相关问题