Добавление меню в строку меню Visual Studio
В этом пошаговом руководстве показано, как добавить меню в строку меню интегрированной среды разработки Visual Studio (IDE). Панель меню интегрированной среды разработки содержит такие категории меню, как "Файл", "Изменить", "Вид", "Окно" и "Справка".
Прежде чем добавлять новое меню в строку меню Visual Studio, рассмотрите, следует ли размещать команды в существующем меню. Дополнительные сведения о размещении команд см. в меню и командах Visual Studio.
Меню объявляются в VSCT-файле проекта. Дополнительные сведения о меню и VSCT-файлах см. в разделе "Команды", меню и панели инструментов.
Выполнив это пошаговое руководство, можно создать меню с именем "Тестовое меню ", содержащее одну команду.
Примечание.
Начиная с Visual Studio 2019, меню верхнего уровня, внесенные расширениями, помещаются в меню "Расширения ".
Создание проекта VSIX с пользовательским шаблоном элемента команды
Создайте проект VSIX с именем
TopLevelMenu
. Шаблон проекта VSIX можно найти в диалоговом окне "Новый проект ", выполнив поиск vsix. Дополнительные сведения см. в разделе "Создание расширения" с помощью команды меню.Когда проект откроется, добавьте пользовательский шаблон элемента командной строки с именем TestCommand. Щелкните правой кнопкой мыши узел проекта в Обозревателе решений, а затем выберите Добавить>Новый элемент. В диалоговом окне "Добавление нового элемента" перейдите в Visual C# или расширяемость и выберите команду. В поле "Имя" в нижней части окна измените имя файла команды на TestCommand.cs.
Создание меню в строке меню интегрированной среды разработки
В Обозреватель решений откройте TopLevelMenuPackage.vsct.
В конце файла есть
<Symbols>
узел, содержащий несколько<GuidSymbol>
узлов. В именованномguidTopLevelMenuPackageCmdSet
узле добавьте новый символ, как показано ниже.<IDSymbol name="TopLevelMenu" value="0x1021"/>
Создайте пустой
<Menus>
узел на<Commands>
узле, незадолго до<Groups>
этого.<Menus>
В узле добавьте<Menu>
узел следующим образом:<Menus> <Menu guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu" priority="0x700" type="Menu"> <Parent guid="guidSHLMainMenu" id="IDG_VS_MM_TOOLSADDINS" /> <Strings> <ButtonText>Test Menu</ButtonText> </Strings> </Menu> </Menus>
id
Иguid
значения меню указывают набор команд и определенное меню в наборе команд.И
guid
id
значения родительского расположения меню в разделе строки меню Visual Studio, содержащей меню "Сервис" и "Надстройки".Элемент
<ButtonText>
указывает, что текст должен отображаться в элементе меню.<Groups>
В разделе найдите<Group>
и измените<Parent>
элемент, чтобы указать в меню, который мы только что добавили:<Groups> <Group guid="guidTopLevelMenuPackageCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu"/> </Group> </Groups>
Это делает групповую часть нового меню.
<Buttons>
В разделе найдите<Button>
узел. Затем в узле измените<Strings>
<ButtonText>
элементTest Command
на .Обратите внимание, что шаблон пакета Visual Studio создал элемент с родительским набором
Button
MyMenuGroup
. В результате эта команда появится в меню.
Создание и проверка расширения
Выполните сборку решения и запустите отладку. Должен появиться экземпляр экспериментального экземпляра.
Меню "Расширения" в экспериментальном экземпляре должно содержать меню "Тестовое меню ".
В меню меню "Тест" выберите команду "Тест".
Появится поле сообщения и отобразится сообщение TestCommand Inside TopLevelMenu.TestCommand.MenuItemCallback()".