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


Практическое руководство. Создание многократно используемые группы кнопок

Группа команд коллекция команд, которые всегда отображаются вместе в меню или на панели инструментов. Любая группа команд может быть повторно использована, присвоив ее к различным родительского меню CommandPlacements раздел файла .vsct.

Группы команд обычно содержат кнопки, но они также могут содержать другие меню или combo окна.

Создать группу в составе кнопки с возможностью повторного использования

  1. Создайте VSPackage с помощью шаблона пакета Visual Studio и выберите Команда меню на Выберите параметры пакета VSPackage страница. В качестве альтернативы можно открыть существующий проект, содержащий файл .vsct. Дополнительные сведения см. в разделе Пошаговое руководство: Создание команды меню ресурсов с помощью шаблона пакета Visual Studio.

  2. Откройте файл .vsct в проекте.

  3. в Symbols раздел находит GuidSymbol элемент, содержащий группы и команды для проекта.

    По умолчанию он называется guid<Название проекта>CmdSet.

  4. Добавление IDSymbol элемент для вашей группы и по одному для каждой кнопки, добавляемой к группе, как показано в следующем примере.

    <GuidSymbol name="guidButtonGroupCmdSet" value="{f69209e9-975a-4543-821d-1f4a2c52d737}">
      <IDSymbol name="MyMenuGroup" value="0x1020" />
      <IDSymbol name="cmdidMyCommand" value="0x0100" />
    </GuidSymbol>
    

    По умолчанию шаблон пакета создается группа MyGroup и кнопка, которая имеет имя, указанное вместе с IDSymbol запись для каждой из них.

  5. в Groups создает новую секцию Группа элемент, имеющий одинаковые guid и id атрибуты, которые уступанные Symbols раздел. Также можно использовать существующую группу или используйте запись, предоставляемые шаблоном пакета, как показано в следующем примере.

    <Group guid="guidButtonGroupCmdSet" id="MyMenuGroup" priority="0x0600">
      <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
    </Group>
    

    По умолчанию группа, которая отображается в примере отображается в Visual Studio Сервис меню.

Заполнять группу в составе кнопки для повторного использования

  1. Можно поместить команду меню или в группу или с помощью команды в качестве родительского объекта или в определении команды меню или путем помещения команды меню в группу или с помощьюCommandPlacements раздел.

    Кнопка определяется как a кнопка элемент in Кнопки раздел. Укажите кнопку, которая содержит пользовательскую группу, что и родительский или воспользуйтесь кнопкой, предоставляемые шаблоном пакета, как показано в следующем примере.

    <Button guid="guidButtonGroupCmdSet" id="cmdidMyCommand" priority="0x0100" type="Button">
      <Parent guid="guidButtonGroupCmdSet" id="MyMenuGroup" />
      <Icon guid="guidImages" id="bmpPic1" />
      <Strings>
        <CommandName>cmdidMyCommand</CommandName>
        <ButtonText>My Command name</ButtonText>
      </Strings>
    </Button>
    
  2. Если кнопка должна отображаться в более одной группы, то создайте запись для него в CommandPlacements раздел. Установка guid и id атрибуты CommandPlacement элемент для соответствия любой из кнопок необходимо разместить, а затем присвойте guid и id своего Родительский элемент элемент в любой из целевой группы, как показано в следующем примере.

    <CommandPlacements>
      <CommandPlacement guid="guidButtonGroupCmdSet" id="cmdidMyCommand" priority="0x105">
        <Parent guid="guidButtonGroupCmdSet" id="MyMenuGroup" />
      </CommandPlacement>
    </CommandPlacements>
    

    Примечание

    Значение Priority поле определяет положение команд в новой группе команд.Набор приоритетов в CommandPlacement переопределение элемента, установленные в определение этих элементов.Команды, имеющих значения более низким приоритетом отображаются перед командами, имеющих значения с более высоким приоритетом.Дублирующиеся значения приоритета разрешены, но относительное положение команд, которые имеют одинаковое значение приоритета не может быть связано с тем, что порядок, в котором devenv setup команда создает окончательный интерфейс из реестра не может быть согласована.

Поместить многоразовую группу в составе кнопки в меню

  • Создайте запись в CommandPlacements раздел. Установите идентификатор GUID и идентификатор CommandPlacement элемент в любой из вашей группы и присвойте родительские GUID и идентификатор к этому из позиции мишени. Обратите внимание, что группа команды может быть включена более чем в одном меню. Родительский объект меню может быть одно, созданное в одно, переданное by Visual Studio (описание см. в ShellCmdDef.vsct или SharedCmdDef.vsct) или один, определенного в другом VSPackage. Количество уровней parenting unlimited, пока родительский объект меню и наконец подключено к Visual Studio или в контекстное меню, отображаемого в VSPackage.

    Следующий пример помещает группу на Обозреватель решений панель инструментов справа от других кнопок.

    <CommandPlacements>
      <CommandPlacement guid="guidButtonGroupCmdSet" id="MyMenuGroup" 
          priority="0x605">
        <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS" />
      </CommandPlacement>
    </CommandPlacements>
    

См. также

Задачи

Практическое руководство. Создание и настройка команды в VSPackages (C#)

Другие ресурсы

общие задачи с командами, меню, и панелями инструментов

Best Practices for Command Table Organization