Практическое руководство. Создание многократно используемые группы кнопок
Группа команд коллекция команд, которые всегда отображаются вместе в меню или на панели инструментов. Любая группа команд может быть повторно использована, присвоив ее к различным родительского меню CommandPlacements раздел файла .vsct.
Группы команд обычно содержат кнопки, но они также могут содержать другие меню или combo окна.
Создать группу в составе кнопки с возможностью повторного использования
Создайте VSPackage с помощью шаблона пакета Visual Studio и выберите Команда меню на Выберите параметры пакета VSPackage страница. В качестве альтернативы можно открыть существующий проект, содержащий файл .vsct. Дополнительные сведения см. в разделе Пошаговое руководство: Создание команды меню ресурсов с помощью шаблона пакета Visual Studio.
Откройте файл .vsct в проекте.
в Symbols раздел находит GuidSymbol элемент, содержащий группы и команды для проекта.
По умолчанию он называется guid<Название проекта>CmdSet.
Добавление IDSymbol элемент для вашей группы и по одному для каждой кнопки, добавляемой к группе, как показано в следующем примере.
<GuidSymbol name="guidButtonGroupCmdSet" value="{f69209e9-975a-4543-821d-1f4a2c52d737}"> <IDSymbol name="MyMenuGroup" value="0x1020" /> <IDSymbol name="cmdidMyCommand" value="0x0100" /> </GuidSymbol>
По умолчанию шаблон пакета создается группа MyGroup и кнопка, которая имеет имя, указанное вместе с IDSymbol запись для каждой из них.
в Groups создает новую секцию Группа элемент, имеющий одинаковые guid и id атрибуты, которые уступанные Symbols раздел. Также можно использовать существующую группу или используйте запись, предоставляемые шаблоном пакета, как показано в следующем примере.
<Group guid="guidButtonGroupCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/> </Group>
По умолчанию группа, которая отображается в примере отображается в Visual Studio Сервис меню.
Заполнять группу в составе кнопки для повторного использования
Можно поместить команду меню или в группу или с помощью команды в качестве родительского объекта или в определении команды меню или путем помещения команды меню в группу или с помощью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>
Если кнопка должна отображаться в более одной группы, то создайте запись для него в 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#)