-->
Menu flyouts are used in menu and context menu scenarios to display a list of commands or options when requested by the user. A menu flyout shows a single, inline, top-level menu that can have menu items and sub-menus. To show a set of multiple top-level menus in a horizontal row, use menu bar (which you typically position at the top of the app window).
To do that, we first need to create a Tray object, which displays the specified icon in the menu bar. Since we need to position and toggle our mainWindow object and also preferably be able to show a system menu when right clicked to Tray icon, it is more convenient to create a class which bundles all the functionalities inside. Mar 17, 2020 menuBar.addcascade (label='Help', menu=helpMenu) win.mainloop About the code. First, I am importing the tkinter modules. Next, I assign a class and variables and give the application title. Next, I create a Menu bar and adding menus into the menu bar like file, help. Next, I create menu items and items event into the menus like new, exit.
Get the Windows UI Library
The MenuBar control is included as part of the Windows UI Library, a NuGet package that contains new controls and UI features for Windows apps. For more info, including installation instructions, see the Windows UI Library overview.
Windows UI Library APIs:MenuBar class
Platform APIs:MenuFlyout class, MenuBar class, ContextFlyout property, FlyoutBase.AttachedFlyout property
See menus and context menus for help identifying menu vs. context menu scenarios and guidance on when to use menu flyout vs. command bar flyout.
Menu flyouts can be used as menus and context menus to organize commands. To display arbitrary content, such as a notification or confirmation request, use a dialog or a flyout.
If a particular command will be used frequently and you have the space available, see collection commanding for examples on placing a command directly in its own element so that users don't have to go through a menu to get to it.
XAML Controls Gallery |
---|
If you have the XAML Controls Gallery app installed, click here to open the app and see the MenuFlyout in action. |
To create a menu flyout, you use the MenuFlyout class. You define the contents of the menu by adding MenuFlyoutItem, MenuFlyoutSubItem, ToggleMenuFlyoutItem, RadioMenuFlyoutItem and MenuFlyoutSeparator objects to the MenuFlyout.
These objects are for:
This example creates a MenuFlyout and uses the ContextFlyout property, a property available to most controls, to show the MenuFlyout as a context menu.
The next example is nearly identical, but instead of using the ContextFlyout property to show the MenuFlyout class as a context menu, the example uses the FlyoutBase.ShowAttachedFlyout property to show it as a menu.
Consider providing menu item icons for:
Don't feel obligated to provide icons for commands that don't have a standard visualization. Cryptic icons aren't helpful, create visual clutter, and prevent users from focusing on the important menu items.
Tip
The size of the icon in a MenuFlyoutItem is 16x16px. If you use SymbolIcon, FontIcon, or PathIcon, the icon automatically scales to the correct size with no loss of fidelity. If you use BitmapIcon, ensure that your asset is 16x16px.
Light dismiss controls such as menus, context menus, and other flyouts, trap keyboard and gamepad focus inside the transient UI until dismissed. To provide a visual cue for this behavior, light dismiss controls on Xbox will draw an overlay that dims the visibility of out of scope UI. This behavior can be modified with the LightDismissOverlayMode property. By default, transient UIs will draw the light dismiss overlay on Xbox (Auto) but not other device families. You can choose to force the overlay to be always On or always Off.
Important
MenuBar requires Windows 10, version 1809 (SDK 17763) or later, or the Windows UI Library.
You use the same elements to create menus in a menu bar as in a menu flyout. However, instead of grouping MenuFlyoutItem objects in a MenuFlyout, you group them in a MenuBarItem element. Each MenuBarItem is added to the MenuBar as a top level menu.
Note
This example shows only how to create the UI structure, but does not show implementation of any of the commands.