Unity 6.3
0 онлайн 70 гостей 3 в системе
Вход

GenericDropdownMenu

класс в UnityEngine.UIElements

Наследуется от:UIElements.AbstractGenericMenu

Выполнено в:UnityEngine.UIElementsModule

Описание

GenericDropdownMenu позволяет отображать контекстные меню с текстовыми опциями по умолчанию или любыми VisualElement.

Метод GenericDropdownMenu представляет собой типовую реализацию выпадающего меню, которое можно использовать как в Редакторе UI, так и во время выполнения UI.

В следующем примере создается выпадающее меню с тремя пунктами. Меню отображается, когда пользователь нажимает на кнопку. В примере также показано, как установить ширину выпадающего меню с помощью метода DropDown.

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; button.RegisterCallback<FocusInEvent>(OnFocusIn); button.RegisterCallback<FocusOutEvent>(OnFocusOut);

// 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);

// Return focus to the button when the menu is closed. menu.onClose += () => { button.Focus(); };

// 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); }

void OnFocusIn(FocusInEvent evt) { // When the button receives focus, set the background color to a lighter gray. var button = evt.currentTarget as Button; button.style.backgroundColor = Color.dimGray; }

void OnFocusOut(FocusOutEvent evt) { // When the button loses focus, return its color to the default color. var button = evt.currentTarget as Button;

// Menu also steals focus, but we don't want to reset the color in that case. if (evt.relatedTarget is VisualElement { userData: GenericDropdownMenu menu } && menu.targetElement == button) { return; }

button.style.backgroundColor = StyleKeyword.Null; } }

Статические свойства

Свойство Описание
checkmarkUssClassName Имя USS-класса для разделителей в элементах этого типа.
containerInnerUssClassName Имя USS-класса для внутренних контейнеров в элементах этого типа.
containerOuterUssClassName Имя USS-класса для внешних контейнеров в элементах этого типа.
contentWidthUssClassName Имя USS-класса, добавляемое, когда GenericDropdownMenu подстраивается под ширину своего содержимого.
itemContentUssClassName Имя USS-класса для меток в элементах этого типа.
itemUssClassName Имя USS-класса для меток в элементах этого типа.
labelUssClassName Имя USS-класса для меток в элементах этого типа.
separatorUssClassName Имя USS-класса для разделителей в элементах этого типа.
ussClassName Имя USS-класса для элементов этого типа.

Свойства

Свойство Описание
contentContainerВозвращает контейнер содержимого для GenericDropdownMenu. Позволяет пользователям создавать собственные раскрывающиеся меню, если они не хотят использовать реализацию по умолчанию. Он содержит ссылку на меню в его VisualElement.userData.
targetElementВозвращает элемент, определяющий, какой корень использовать в качестве родительского для меню.

Конструкторы

Конструктор Описание
GenericDropdownMenuИнициализирует и возвращает экземпляр GenericDropdownMenu.

Открытые методы

Метод Описание
AddDisabledItemДобавление отключенного элемента в это меню с использованием VisualElement по умолчанию.
AddItemДобавление элемента в это меню с использованием VisualElement по умолчанию.
AddSeparatorДобавляет визуальный разделитель после ранее добавленных элементов в этом меню.
DropDownОтображает меню в указанной позиции.

Мероприятия

Мероприятие Описание
onCloseДействие, которое вызывают после закрытия меню.
onOpenДействие, которое вызывается перед открытием меню.