Skip to content

Extras

ContextMenu

Bit.BlazorUI.ExtrasRightClickMenuPopupMenuShortcutMenu

BitContextMenu opens a menu over an area of the page rather than from a button: where the area is right-clicked, or from the keyboard with Shift+F10 or the Menu key while the focus is in it. The menu is a BitMenuButton's, with its items, keyboard, submenus and check and radio items.

Notes

To use this component, you need to install the Bit.BlazorUI.Extras(opens in a new tab) nuget package, as described in the Optional steps of the Getting started page.

The area is a tab stop of its own, so the keyboard can reach it and open the menu. While the menu is open, a right-click on the area moves it there, and a click or a right-click anywhere else on the page closes it. Escape, Tab or an item hands the focus back to where it was in the area.

Usage

Every example is live. Open its code to see exactly what produced the component running underneath.

Basic

Right-click the box, or focus it with Tab and press Shift+F10 or the Menu key. The menu opens at the point, with the focus on its first item.

Right-click here

Clicked item:

Options

The items can be declared as BitMenuButtonOption components in Options, with everything a menu button's items have: icons, separators, submenus, and check and radio items.

Right-click here

Clicked item: , show grid: True

Custom items

Items of a class of the app's own, mapped through NameSelectors.

Right-click here

Clicked item:

Rows

One context menu serves a whole list: each row records itself as the one the menu is for, on its own right-click and on its focus (for Shift+F10). From the keyboard the menu opens at the focused row.

report.pdf
budget.xlsx
photo.jpg

Last action:

Binding & OpenAt

IsOpen is two-way bindable, and closes the menu when set to false. OpenAt opens it from code at a point of the viewport, or at the point of a mouse event.

Right-click here

IsOpen: False

Disabled

A disabled context menu leaves the area to the browser's own menu.

Right-click here

Style & Class

The area takes Style and Class, and the menu MenuStyles and MenuClasses, which are a menu button's (BitMenuButtonClassStyles), and AriaLabel names the menu.

Right-click here

RTL

Use BitContextMenu in right-to-left (RTL).

اینجا کلیک راست کنید

API

Every parameter, public member, sub-class and enum this component exposes.

BitContextMenu parameters

Name Type Default value Description
ChildContent RenderFragment? null The content of the area the menu is opened over.
CloseOnItemClick bool true Whether the menu closes once one of its items is clicked.
IsOpen bool false Whether the menu is open. Two-way bindable.
Items IEnumerable<TItem> [] The items of the menu.
ItemTemplate RenderFragment<TItem?>? null The template the items of the menu are rendered with.
MenuClasses BitMenuButtonClassStyles? null Custom CSS classes for the different parts of the menu. Those of the parts of the menu button's own button do nothing here, since the button is never shown.
MenuStyles BitMenuButtonClassStyles? null Custom CSS styles for the different parts of the menu. Those of the parts of the menu button's own button do nothing here, since the button is never shown.
NameSelectors BitMenuButtonNameSelectors<TItem>? null Names the members of a custom item class to read the text, icon, children and the rest of an item from.
OnItemClick EventCallback<TItem> The callback for when an item of the menu is clicked.
Options RenderFragment? null The items of the menu, declared as BitMenuButtonOption components.

BitContextMenu public members

Name Type Default value Description
OpenAt (double x, double y) => Task Opens the menu at the given point of the viewport, in CSS pixels, or moves it there when it is open already. It is still placed to stay on the screen, and the focus is taken into it.
OpenAt (MouseEventArgs e) => Task Opens the menu at the point of a mouse event (its clientX and clientY), or moves it there when it is open already.

BitComponentBase parameters

Name Type Default value Description
AriaLabel string? null Gets or sets the accessible label for the component, used by assistive technologies.
Class string? null Gets or sets the CSS class name(s) to apply to the rendered element.
Dir BitDir? null Gets or sets the text directionality for the component's content.
Disabled bool false Gets or sets a value indicating whether the component is disabled and cannot respond to user interaction.
ForceAnimation bool false Gets or sets a value indicating whether the component's animations play at their full duration even when reduced motion is requested.
HtmlAttributes Dictionary<string, object> new Dictionary<string, object>() Captures additional HTML attributes to be applied to the rendered element, in addition to the component's parameters. An attribute written on the component wins over an entry of the same name.
Id string? null Gets or sets the unique identifier for the component's root element.
Style string? null Gets or sets the CSS style string to apply to the rendered element.
TabIndex string? null Gets or sets the tab order index for the component when navigating with the keyboard.
Visibility BitVisibility BitVisibility.Visible Gets or sets the visibility state (visible, hidden, or collapsed) of the component.

BitComponentBase public members

Name Type Default value Description
UniqueId Guid Guid.NewGuid() Gets the readonly unique identifier for the component's root element, assigned when the component instance is constructed.
RootElement ElementReference Gets the reference to the root HTML element associated with this component.

BitVisibility enum

Name Value Description
Visible 0 The content of the component is visible.
Hidden 1 The content of the component is hidden, but the space it takes on the page remains (visibility:hidden).
Collapsed 2 The component is hidden (display:none).

BitDir enum

Name Value Description
Ltr 0 Ltr (left to right) is to be used for languages that are written from the left to the right (like English).
Rtl 1 Rtl (right to left) is to be used for languages that are written from the right to the left (like Arabic).
Auto 2 Auto lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then applies that directionality to the whole element.

Feedback

Found a mistake, a gap, or something that could be clearer? Every page and every component is one click from its source.