Добавление меню в строку меню Visual Studio

В этом пошаговом руководстве показано, как добавить меню в строку меню интегрированной среды разработки Visual Studio (IDE). Панель меню интегрированной среды разработки содержит такие категории меню, как "Файл", "Изменить", "Вид", "Окно" и "Справка".

Прежде чем добавлять новое меню в строку меню Visual Studio, рассмотрите, следует ли размещать команды в существующем меню. Дополнительные сведения о размещении команд см. в меню и командах Visual Studio.

Меню объявляются в VSCT-файле проекта. Дополнительные сведения о меню и VSCT-файлах см. в разделе "Команды", меню и панели инструментов.

Выполнив это пошаговое руководство, можно создать меню с именем "Тестовое меню ", содержащее одну команду.

Примечание.

Начиная с Visual Studio 2019, меню верхнего уровня, внесенные расширениями, помещаются в меню "Расширения ".

Создание проекта VSIX с пользовательским шаблоном элемента команды

  1. Создайте проект VSIX с именем TopLevelMenu. Шаблон проекта VSIX можно найти в диалоговом окне "Новый проект ", выполнив поиск vsix. Дополнительные сведения см. в разделе "Создание расширения" с помощью команды меню.

  2. Когда проект откроется, добавьте пользовательский шаблон элемента командной строки с именем TestCommand. Щелкните правой кнопкой мыши узел проекта в Обозревателе решений, а затем выберите Добавить>Новый элемент. В диалоговом окне "Добавление нового элемента" перейдите в Visual C# или расширяемость и выберите команду. В поле "Имя" в нижней части окна измените имя файла команды на TestCommand.cs.

Создание меню в строке меню интегрированной среды разработки

  1. В Обозреватель решений откройте TopLevelMenuPackage.vsct.

    В конце файла есть <Symbols> узел, содержащий несколько <GuidSymbol> узлов. В именованном guidTopLevelMenuPackageCmdSetузле добавьте новый символ, как показано ниже.

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. Создайте пустой <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 значения меню указывают набор команд и определенное меню в наборе команд.

    И guidid значения родительского расположения меню в разделе строки меню Visual Studio, содержащей меню "Сервис" и "Надстройки".

    Элемент <ButtonText> указывает, что текст должен отображаться в элементе меню.

  3. <Groups> В разделе найдите <Group> и измените <Parent> элемент, чтобы указать в меню, который мы только что добавили:

    <Groups>
        <Group guid="guidTopLevelMenuPackageCmdSet" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu"/>
        </Group>
    </Groups>
    

    Это делает групповую часть нового меню.

  4. <Buttons> В разделе найдите <Button> узел. Затем в узле измените <Strings><ButtonText> элемент Test Commandна .

    Обратите внимание, что шаблон пакета Visual Studio создал элемент с родительским набором ButtonMyMenuGroup. В результате эта команда появится в меню.

Создание и проверка расширения

  1. Выполните сборку решения и запустите отладку. Должен появиться экземпляр экспериментального экземпляра.

  2. Меню "Расширения" в экспериментальном экземпляре должно содержать меню "Тестовое меню ".

  3. В меню меню "Тест" выберите команду "Тест".

    Появится поле сообщения и отобразится сообщение TestCommand Inside TopLevelMenu.TestCommand.MenuItemCallback()".