# ContextMenu
**Also known as:** RightClickMenu, PopupMenu, ShortcutMenu
## Description
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.
## 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. |
| 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. |
## 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. |
| 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. |
## Enums
### 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. |
## Examples