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


Добавление панели инструментов в окно инструментов

В этом пошаговом руководстве показано, как добавить панель инструментов в окно инструментов.

Панель инструментов — это горизонтальная или вертикальная полоса, содержащая кнопки, привязанные к командам. Длина панели инструментов в окне инструментов всегда совпадает с шириной или высотой окна инструмента в зависимости от того, где закреплена панель инструментов.

В отличие от панелей инструментов в интегрированной среде разработки, панель инструментов в окне инструментов должна быть закреплена и не может быть перемещена или настроена. Если VSPackage написан в неуправляемом коде, панель инструментов можно закрепить на любом краю.

Дополнительные сведения о добавлении панели инструментов см. в разделе "Добавление панели инструментов".

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

  1. Создайте проект VSIX с именем TWToolbar команды меню с именем TWTestCommand и окном инструментов с именем TestToolWindow. Дополнительные сведения см. в разделе "Создание расширения с помощью команды меню" и создание расширения с помощью окна инструментов. Перед добавлением шаблона окна инструментов необходимо добавить шаблон элемента команды.

  2. В TWTestCommandPackage.vsct найдите раздел "Символы". В узле GuidSymbol с именем guidTWTestCommandPackageCmdSet объявите панель инструментов и группу инструментов, как показано ниже.

    <IDSymbol name="TWToolbar" value="0x1000" />
    <IDSymbol name="TWToolbarGroup" value="0x1050" />
    
  3. В верхней части Commands раздела создайте Menus раздел. Menu Добавьте элемент для определения панели инструментов.

    <Menus>
        <Menu guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" type="ToolWindowToolbar">
            <CommandFlag>DefaultDocked</CommandFlag>
            <Strings>
                <ButtonText>Test Toolbar</ButtonText>
                <CommandName>Test Toolbar</CommandName>
            </Strings>
        </Menu>
    </Menus>
    

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

  4. В разделе "Группы" определите группу, содержащую команды для панели инструментов.

    
    <Group guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" priority="0x0000">
        <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" />
    </Group>
    
  5. В разделе "Кнопки" измените родительский элемент существующего элемента Button на группу инструментов, чтобы панель инструментов отображалась.

    <Button guid="guidTWTestCommandPackageCmdSet" id="TWTestCommandId" priority="0x0100" type="Button">
        <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" />
        <Icon guid="guidImages" id="bmpPic1" />
        <Strings>
            <ButtonText>Invoke TWTestCommand</ButtonText>
        </Strings>
    </Button>
    

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

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

Добавление панели инструментов в окно инструментов

  1. В TWTestCommandPackageGuids.cs добавьте следующие строки.

    public const string guidTWTestCommandPackageCmdSet = "00000000-0000-0000-0000-0000";  // get the GUID from the .vsct file
    public const int TWToolbar = 0x1000;
    
  2. В TestToolWindow.cs добавьте следующую инструкцию using.

    using System.ComponentModel.Design;
    
  3. В конструкторе TestToolWindow добавьте следующую строку.

    this.ToolBar = new CommandID(new Guid(TWTestCommandPackageGuids.guidTWTestCommandPackageCmdSet), TWTestCommandPackageGuids.TWToolbar);
    

Проверка панели инструментов в окне инструментов

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

  2. В меню "Вид" или "Другие окна" щелкните "Тестовый инструментWindow", чтобы отобразить окно инструмента.

    Вы увидите панель инструментов (она выглядит как значок по умолчанию) в левом верхнем углу окна инструментов, чуть ниже заголовка.

  3. На панели инструментов щелкните значок, чтобы отобразить сообщение TWTestCommandPackage Inside TWToolbar.TWTestCommand.MenuItemCallback().