Sdílet prostřednictvím


Zobrazení řádku nabídek v desktopové aplikaci .NET MAUI

Řádek nabídek .NET Multi-Platform App UI (.NET MAUI) je kontejner, který představuje sadu nabídek v vodorovném řádku v horní části aplikace v systému Mac Catalyst a Windows.

Každá nabídka nejvyšší úrovně na řádku nabídek, označovaná jako položka řádku nabídek, je reprezentována objektem MenuBarItem . MenuBarItem definuje následující vlastnosti:

  • Text, typu string, definuje text nabídky.
  • IsEnabled, typu boolean, určuje, zda je nabídka povolena. Výchozí hodnota této vlastnosti je true.

Tyto vlastnosti jsou podporovány BindableProperty objekty, což znamená, že mohou být cíle datových vazeb a stylovány.

A MenuBarItem může se skládat z následujících podřízených položek:

  • MenuFlyoutItem, který představuje položku nabídky, na kterou lze kliknout.
  • MenuFlyoutSubItem, která představuje položku podnabídky, na kterou lze kliknout.
  • MenuFlyoutSeparator, což je vodorovná čára, která odděluje položky v nabídce.

MenuFlyoutSubItem odvozuje od MenuFlyoutItem, který je odvozen od MenuItem. MenuItem definuje více vlastností, které umožňují zadat vzhled a chování položky nabídky. Vzhled položky nabídky nebo dílčí položky lze definovat nastavením Texta IconImageSource vlastností. Odpověď na položku nabídky nebo dílčí položku lze definovat nastavením , ClickedCommanda CommandParameter vlastnosti. Další informace o položkách nabídky naleznete v tématu Zobrazit položky nabídky.

Vytváření položek řádku nabídek

MenuBarItemobjekty lze přidat do MenuBarItems kolekce, typu IList<MenuBarItem>, na .ContentPage Desktopové aplikace .NET MAUI zobrazí řádek nabídek obsahující položky nabídek, když se přidají do libovolné ContentPage aplikace hostované v aplikaci nebo v NavigationPage prostředí.

Následující příklad ukazuje ContentPage , že definuje položky řádku nabídek:

<ContentPage ...>
    <ContentPage.MenuBarItems>
        <MenuBarItem Text="File">
            <MenuFlyoutItem Text="Exit"
                            Command="{Binding ExitCommand}" />
        </MenuBarItem>
        <MenuBarItem Text="Locations">
            <MenuFlyoutSubItem Text="Change Location">
                <MenuFlyoutItem Text="Redmond, USA"
                                Command="{Binding ChangeLocationCommand}"
                                CommandParameter="Redmond" />
                <MenuFlyoutItem Text="London, UK"
                                Command="{Binding ChangeLocationCommand}"
                                CommandParameter="London" />
                <MenuFlyoutItem Text="Berlin, DE"
                                Command="{Binding ChangeLocationCommand}"
                                CommandParameter="Berlin"/>
            </MenuFlyoutSubItem>
            <MenuFlyoutSeparator />            
            <MenuFlyoutItem Text="Add Location"
                            Command="{Binding AddLocationCommand}" />
            <MenuFlyoutItem Text="Edit Location"
                            Command="{Binding EditLocationCommand}" />
            <MenuFlyoutItem Text="Remove Location"
                            Command="{Binding RemoveLocationCommand}" />                            
        </MenuBarItem>
        <MenuBarItem Text="View">
            <MenuFlyoutItem Text="Refresh"
                            Command="{Binding RefreshCommand}" />
            <MenuFlyoutItem Text="Change Theme"
                            Command="{Binding ChangeThemeCommand}" />
        </MenuBarItem>
    </ContentPage.MenuBarItems>
</ContentPage>

Tento příklad definuje tři nabídky nejvyšší úrovně. Každá nabídka nejvyšší úrovně obsahuje položky nabídky a druhá nabídka nejvyšší úrovně má dílčí nabídku a oddělovač:

Snímek obrazovky řádku nabídek

Poznámka:

V Systému Mac Catalyst jsou položky nabídky přidány do systémového řádku nabídek.

V tomto příkladu každý MenuFlyoutItem definuje položku nabídky, která provede ICommand při výběru.

Akcelerátory klávesnice lze přidat do položek nabídky v řádku nabídek, aby bylo možné položku nabídky vyvolat pomocí klávesové zkratky. Další informace naleznete v tématu Klávesové zkratky.

Zobrazení ikon v položkách nabídky

MenuFlyoutItem a MenuFlyoutSubItem dědí IconImageSource vlastnost z MenuItem, která umožňuje zobrazit malou ikonu vedle textu položky nabídky. Tato ikona může být obrázek nebo ikona písma.

Upozorňující

Mac Catalyst nepodporuje zobrazování ikon v položkách nabídky.

Následující příklad ukazuje položku řádku nabídek, kde jsou ikony položek nabídky definovány pomocí ikon písem:

<ContentPage.MenuBarItems>
    <MenuBarItem Text="Media">
        <MenuFlyoutItem Text="Play">
            <MenuFlyoutItem.IconImageSource>
                <FontImageSource Glyph="&#x25B6;"
                                 FontFamily="Arial" />
            </MenuFlyoutItem.IconImageSource>
        </MenuFlyoutItem>
        <MenuFlyoutItem Text="Pause"
                        Clicked="OnPauseClicked">
            <MenuFlyoutItem.IconImageSource>
                <FontImageSource Glyph="&#x23F8;"
                                 FontFamily="Arial" />
            </MenuFlyoutItem.IconImageSource>
        </MenuFlyoutItem>
        <MenuFlyoutItem Text="Stop"
                        Clicked="OnStopClicked">
            <MenuFlyoutItem.IconImageSource>
                <FontImageSource Glyph="&#x23F9;"
                                 FontFamily="Arial" />
            </MenuFlyoutItem.IconImageSource>
        </MenuFlyoutItem>
    </MenuBarItem>
</ContentPage.MenuBarItems>

V tomto příkladu položka řádku nabídek definuje tři položky nabídky, které zobrazují ikonu a text ve Windows.

Další informace o zobrazení ikon písem naleznete v tématu Zobrazení ikon písem. Informace o přidávání obrázků do projektů .NET MAUI najdete v tématu Přidání obrázků do projektu aplikace .NET MAUI.