Практическое руководство. Добавление контроллеров меню в панель инструментов
Контроллер меню отображается в панели инструментов, как кнопка, которая имеет стрелку раскрывающегося списка рядом с ним. Когда пользователь щелкает контроллер меню, меню, которое содержит группы, которые имеют контроллер меню в качестве родительского. 2 Примера контроллеров меню в Visual Studio Найти окно на главной панели инструментов и селекторе объекта в начало Свойства окна.
Когда пользователь выбирает соответствующую команду в раскрывающемся списке, вложенно к контроллеру меню команда выполняется и отображается на кнопке контроллера имя команды меню. Чтобы выполнить команду еще раз, пользователь может просто щелкнуть кнопку.
Примечание
Хотя можно поместить контроллер меню в меню, рекомендуется использовать вместо вложенного меню, поскольку проще реализовать и последовательне с типичными пользовательскими интерфейсами.
Контроллеры меню имеют следующие характеристики:
Значок и текст команды первой видимой в раскрывающемся списке отображаются на кнопке контроллера меню.
При выборе команды в раскрывающемся списке значок и текст для этой команды отображаются на кнопке.
Или значок и текст команды или и то, и другое, можно отобразить.
Кнопка " можно настроить для выполнения одной и той же команды каждый раз, когда она нажата. В этом случае, когда пользователь выбирает соответствующую команду в раскрывающемся списке, он выполняется, но его имя не отображается на кнопке.
Чтобы изменить такие характеристики, применяются флаги в файле, где определен .vsct контроллер меню. Дополнительные сведения см. в разделе Файлы таблицы команд Visual Studio (.Vsct).
Создать контроллер меню
Создание и добавление контроллера меню
Создайте проект VSPackage или открыть существующий проект VSPackage, содержащий файл .vsct.
Откройте файл .vsct в редакторе.
В разделе ", отформатирован Элемент Symbolsнайдите Элемент GuidSymbol в меню, содержащий группы и команды. По умолчанию он называется guid<Название проекта>CmdSet.
Как показано в следующем примере добавьте Элемент IDSymbol для контроллера меню каждой команды, которая ее основное приложение и одной или нескольких групп для команды.
<IDSymbol name="TestMenuController" value="0x1300" /> <IDSymbol name="TestMenuControllerGroup" value="0x1060" /> <IDSymbol name="cmdidMCItem1" value="0x0130" /> <IDSymbol name="cmdidMCItem2" value="0x0131" /> <IDSymbol name="cmdidMCItem3" value="0x0132" />
в Элемент Commandsсоздайте a элемент меню.
в Menus элемент, задающий контроллер меню в меню следующим образом.
Установка guid и id атрибуты в идентификатор GUID. Идентификатор нового контроллера меню.
Идентификатор GUID: Пара идентификатор сформирована name атрибуты GuidSymbol и IDSymbol элементы в определении контроллера меню Symbols раздел.
Установка priority атрибут, чтобы определить положение контроллера меню в его родительской группе.
Установка type атрибутMenuController OR MenuControllerLatched.
Значение MenuController означает, что контроллер меню исходной указывает первую видимую команду.
Значение MenuControllerLatched означает, что контроллер меню использует первую видимую команду, которая выбрана исходная отображается команда. Если команда не выбран, то первая отображаемая команда отображается.
в Menu создает элемент, a Элемент Parent установите его и guid и id атрибуты в идентификатор GUID. Идентификатор группы, которая будет узел контроллер меню. Это может быть существующей группой Visual Studio, например guidStdEditor: IDG_VS_EDITTOOLBAR_COMMENT, содержащее Примечание и удалите комментарий кнопки панели инструментов редактора или определяемые пользователем группы.
Можно опустить Parent элемент если контроллер меню будет размещаться с помощью размещения команды. Включение этого, перед Symbols раздел создает a Элемент CommandPlacements. Add a Элемент CommandPlacement то есть GUID: Идентификатор контроллера меню, приоритет и родительского элемента.
Несколько размещения команды, имеющих один и тот же идентификатор GUID: Идентификатор но имеет разные причины родительскиев контроллер меню, которая будет отображаться на несколько расположений. Дополнительные сведения см. в разделах Элемент CommandPlacements и Практическое руководство. Создание многократно используемые группы кнопок.
После родительского объекта, воспользуйтесь Элемент Strings создание раздела, содержащий a Элемент ButtonText и a Элемент CommandName. ButtonText элемент используется для задания имени панели инструментов по мере того, как он отображается в интегрированную среду разработки. CommandName элемент используется для задания имени команды, которое можно ввести в команда окно для доступа к панели инструментов.
В следующем примере определяется контроллер меню.
<Menu guid="guidTWToolbarCmdSet" id="TestMenuController" priority="0x0100" type="MenuController"> <Parent guid="guidTWToolbarCmdSet" id="TWToolbarGroup" /> <CommandFlag>IconAndText</CommandFlag> <CommandFlag>TextChanges</CommandFlag> <CommandFlag>TextIsAnchorCommand</CommandFlag> <Strings> <ButtonText>Test Menu Controller</ButtonText> <CommandName>Test Menu Controller</CommandName> </Strings> </Menu>
в Элемент Groupsсоздайте a Элемент Group содержаться команды, которая должна отображаться на контроллер меню.
Задайте приоритет группы, чтобы указать, где он отображается на контроллер меню если несколько групп.
Задайте родительский объект группы в идентификатор GUID. Идентификатор контроллера меню.
В следующей группы отображается в контроллер меню из предыдущего примера.
<Group guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" priority="0x000"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuController" /> </Group>
в Элемент Buttonsдобавьте a Элемент Button для каждой команды, которую необходимо добавить к контроллеру меню. Каждая команда должна определить как родительская группа на контроллере меню, как показано в следующем примере.
<Button guid="guidTWToolbarCmdSet" id="cmdidMCItem1" priority="0x0000" type="Button"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <CommandFlag>IconAndText</CommandFlag> <Strings> <ButtonText>MC Item 1</ButtonText> <CommandName>MC Item 1</CommandName> </Strings> </Button> <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem2" priority="0x0100" type="Button"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" /> <Icon guid="guidImages" id="bmpPic2" /> <CommandFlag>IconAndText</CommandFlag> <Strings> <ButtonText>MC Item 2</ButtonText> <CommandName>MC Item 2</CommandName> </Strings> </Button> <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem3" priority="0x0200" type="Button"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" /> <Icon guid="guidImages" id="bmpPicSearch" /> <CommandFlag>IconAndText</CommandFlag> <Strings> <ButtonText>MC Item 3</ButtonText> <CommandName>MC Item 3</CommandName> </Strings> </Button>
Для принудительного кнопку контроллера меню, чтобы указать ту же команду каждый раз, когда она нажата, присвойте FixMenuController пометить на команде.
Parent элемент может быть опущен для команд, которые будут размещены с помощью размещения команды.
См. также
Задачи
Пошаговое руководство: Добавление контроллера меню на панели инструментов
Основные понятия
Другие ресурсы
Пошаговые руководства, для команд меню, панелей инструментов