Поделиться через


Добавление меню и команд в расширения Visual Studio

В этой статье описаны действия по добавлению меню и команд в расширение Visual Studio. Команды чаще всего используются в качестве кнопок в меню вокруг Visual Studio. Для создания команды требуется два шага:

  1. Определение команды
  2. Обработка вызова щелчка и вызова

Определение команды

Каждая кнопка в каждом меню — это команда. Чтобы добавить команду в расширение, сначала необходимо определить ее в VSCT-файле. Это может выглядеть примерно так:

<Buttons>
  <Button guid="MyPackage" id="MyCommand" priority="0x0105" type="Button">
    <Parent guid="VSMainMenu" id="View.DevWindowsGroup.OtherWindows.Group1"/>
    <Icon guid="ImageCatalogGuid" id="StatusInformation" />
    <CommandFlag>IconIsMoniker</CommandFlag>
    <Strings>
      <ButtonText>R&amp;unner Window</ButtonText>
    </Strings>
  </Button>
</Buttons>

Эта кнопка помещается в родительскую группу, расположенную в меню "Просмотреть > другие окна" , как указано в элементе Parent .

Теперь вы можете запустить расширение, чтобы узнать, отображается ли команда в нужном расположении и меню.

Обработка вызовов щелчка и вызова

После определения кнопки необходимо обработать то, что происходит при вызове. Мы делаем это в классе C#, который выглядит следующим образом:

[Command("489ba882-f600-4c8b-89db-eb366a4ee3b3", 0x0100)]
public class MyCommand : BaseCommand<TestCommand>
{
    protected override Task ExecuteAsync(OleMenuCmdEventArgs e)
    {
        // Do something
    }
}

Обязательно вызовите его из метода класса Package InitializeAsync .

protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
{
    await this.RegisterCommandsAsync();
 }    

Идентификатор команды Guid и идентификатор должны соответствовать паре guid/id из Button элемента в VSCT-файле.