Элемент Menu
Определяет один пункт меню. Это шесть типов меню: Контекст, Меню, MenuController, MenuControllerLatched, Панель инструментов и ToolWindowToolbar.
Синтаксис
<Menu guid="guidMyCommandSet" id="MyCommand" priority="0x100" type="button">
<Parent>... </Parent>
<CommandFlag>... </CommandFlag>
<Strings>... </Strings>
</Menu>
Элементы и атрибуты
В следующих разделах описаны атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут | Description |
---|---|
guid | Обязательно. GUID идентификатора команды GUID/ID. |
id | Обязательно. Идентификатор идентификатора команды GUID/ID. |
priority | Необязательно. Числовое значение, указывающее относительную позицию меню в группе меню. |
панель инструментовPriorityInBand | Необязательно. Числовое значение, указывающее относительную позицию панели инструментов в полосе при закреплении окна. |
type | Необязательно. Перечисленное значение, указывающее тип элемента. Если он отсутствует, тип по умолчанию — Menu. Контекст Контекстное меню, отображаемое, когда пользователь щелкает окно правой кнопкой мыши. Контекстное меню имеет следующие характеристики: — Не использует поля "Родитель " и "Приоритет" , если меню должно отображаться в виде контекстного меню. — Можно использовать в качестве подменю, а также в качестве контекстного меню. В этом случае учитывается как идентификатор группы, так и поля "Приоритет". — не всегда доступно. Контекстное меню отображается только в том случае, если заданы следующие условия: — отображается окно, в котором он размещается. — Обработчик мыши в VSPackage обнаруживает правой кнопкой мыши окно, а затем вызывает метод, обрабатывающий команду. — Контекстное меню отображается путем вызова ShowContextMenu метода (рекомендуемого подхода) или ShowContextMenu метода. Меню Предоставляет раскрывающееся меню. Раскрывающееся меню имеет следующие характеристики: — учитывает родительский элемент в своем определении. — Должен иметь родительскую группу или CommandPlacement для группы. — Может быть подменю в любом другом виде меню. — автоматически отображается при отображении родительского меню. — Не требует реализации любого кода VSPackage, чтобы он отображался. MenuController Предоставляет раскрывающееся меню с разделительной кнопкой, которое обычно используется на панелях инструментов. Меню MenuController имеет следующие характеристики: — Должен содержаться в другом меню через Parent или CommandPlacement. — учитывает родительский элемент в своем определении. — Может иметь любое меню в качестве родительского элемента. — автоматически становится доступным при отображении родительского меню. — Не требует программной поддержки для отображения меню. Команда из меню разделенной кнопки отображается в кнопке меню. Отображаемая команда имеет одну из следующих характеристик: — Это последняя команда, которая использовалась, если команда по-прежнему отображается и включена. — это первая отображаемая команда. MenuControllerLatched Предоставляет раскрывающееся меню с разделением кнопки, для которого можно указать команду в качестве выделенного по умолчанию, пометив команду как закрепленную. Команда с блокировкой — это команда, помеченная в меню как выбранная, как правило, при отображении проверка метки. Команда может быть помечена как защепляемая, если на ней установлен флаг OLECMDF_LATCHED в реализации QueryStatus метода IOleCommandTarget интерфейса. Меню MenuControllerLatched имеет следующие характеристики:— Должен содержаться в другом меню через родительскую группу или CommandPlacement. — учитывает родительский элемент в своем определении. — Может иметь любое меню в качестве родительского элемента. — становится доступным всякий раз, когда отображается родительское меню. — Не требует программной поддержки для отображения меню. Команда из меню разделенной кнопки отображается в кнопке меню. Отображаемая команда имеет одну из следующих характеристик: — Это первая отображаемая команда, которая зацепляется. — это первая отображаемая команда. Панель инструментов Предоставляет панель инструментов. Панель инструментов имеет следующие характеристики: — игнорирует родительский элемент в определении. — Невозможно сделать подменю любой группы, даже не используя CommandPlacement. — Всегда можно отобразить, щелкнув панели инструментов в меню "Вид ". — Может отображаться с помощью ВидимостиItem. — для создания кода не требуется. Пример создания панели инструментов см. в разделе "Добавление панели инструментов". ToolWindowToolbar Предоставляет панель инструментов, подключенную к определенному окну инструментов, так же как панель инструментов подключена к среде разработки. — игнорирует родительский элемент в определении. — Невозможно сделать подменю любой группы, даже не используя CommandPlacement. — Отображается только в том случае, если окно инструментов, на котором размещена панель инструментов, отображается, а VSPackage явно добавляет панель инструментов в окно инструментов. Обычно это делается при создании окна инструментов путем получения свойства узла панели инструментов (как представлено IVsToolWindowToolbarHost интерфейсом) из кадра окна инструмента, а затем вызова AddToolbar метода. |
Condition | Необязательно. См . условные атрибуты. |
Дочерние элементы
Элемент | Description |
---|---|
Parent | Необязательно. Родительский элемент элемента меню. |
CommandFlag | Обязательно. См . элемент флага command. Допустимые значения CommandFlag для меню приведены следующим образом: - AlwaysCreate - DefaultDocked - DefaultInvisible — этот флаг не влияет на отображение панелей инструментов. - DontCache - DynamicVisibility — этот флаг не влияет на отображение панелей инструментов. - IconAndText - NoCustomize - NotIn ТБ List - NoToolbarClose - TextChanges - TextIsAnchorCommand |
Строки | Обязательно. См . элемент Strings. ButtonText Дочерний элемент должен быть определен. |
Номер | Необязательный комментарий. |
Родительские элементы
Элемент | Description |
---|---|
Элемент Menus | Определяет все меню, которые реализует VSPackage. |
Пример
<Menu guid="cmdGuidWidgetCommands" id="menuIDEditWidget"
priority="0x0002" type="Menu">
<Parent guid="cmdSetGuidWidgetCommands" id="groupIDFileEdit"/>
<CommandFlag>AlwaysCreate</CommandFlag>
<Strings>
<ButtonText>Edit Widget</ButtonText>
</Strings>
</Menu>