class in UnityEngine.UIElements
/
Implemented in:UnityEngine.UIElementsModule
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseFor some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
CloseGenericDropdownMenu allows you to display contextual menus with default textual options or any VisualElement.
The GenericDropdownMenu is a generic implementation of a dropdown menu that you can use in both Editor UI and runtime UI.
The following example creates a dropdown menu with three items. It displays the menu when the user clicks the button. The example also demonstrates how to set
the width of the dropdown menu with the DropDown
method.
using UnityEditor; using UnityEngine; using UnityEngine.UIElements;
public class MenuExample : EditorWindow {
[MenuItem("Window/UI Toolkit/MenuExample")] public static void ShowExample() { MenuExample wnd = GetWindow<MenuExample>(); wnd.titleContent = new GUIContent("MenuExample"); } public void CreateGUI() { VisualElement root = rootVisualElement;
// Create a button. var button = new Button(); button.text = "Button"; button.style.width = 70;
// Create a dropdown menu with three items. var menu = new GenericDropdownMenu(); menu.AddItem("Item 1", false, a => { Debug.Log("Item 1 was selected"); }, null); menu.AddItem("Item 2", false, a => { Debug.Log("Item 2 was selected"); }, null); menu.AddItem("Item 3 has a very very long label", false, a => { Debug.Log("Item 3 was selected"); }, null);
// When the button is clicked, the dropdown menu is displayed aligned with the button's world boundaries. button.clicked += () => { // The third and the fourth parameters of the DropDown set the width of the dropdown menu. // This sets the width of the dropdown menu to the width of the container. menu.DropDown(button.worldBound, button, false); // This sets the width of the dropdown menu to the width of the button. // menu.DropDown(button.worldBound, button, true, false); // This sets the width of the dropdown menu to the width of the longest item. // menu.DropDown(button.worldBound, button, true, true); }; root.Add(button); } }
checkmarkUssClassName | USS class name of separators in elements of this type. |
containerInnerUssClassName | USS class name of inner containers in elements of this type. |
containerOuterUssClassName | USS class name of outer containers in elements of this type. |
contentWidthUssClassName | USS class name that's added when the GenericDropdownMenu fits the width of its content. |
itemContentUssClassName | USS class name of labels in elements of this type. |
itemUssClassName | USS class name of labels in elements of this type. |
labelUssClassName | USS class name of labels in elements of this type. |
separatorUssClassName | USS class name of separators in elements of this type. |
ussClassName | USS class name of elements of this type. |
contentContainer | Returns the content container for the GenericDropdownMenu. Allows users to create their own dropdown menu if they don't want to use the default implementation. |
GenericDropdownMenu | Initializes and returns an instance of GenericDropdownMenu. |
AddDisabledItem | Adds a disabled item to this menu using a default VisualElement. |
AddItem | Adds an item to this menu using a default VisualElement. |
AddSeparator | Adds a visual separator after the previously added items in this menu. |
DropDown | Displays the menu at the specified position. |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.