共用方式為


將工具列新增至工具視窗

本逐步解說說明如何將工具列新增至工具視窗。

工具列是水平或垂直帶狀區域,包含繫結至命令的按鈕。 工具視窗中的工具列長度一律與工具視窗的寬度或高度相同,視工具列停駐的位置而定。

不同於 IDE 中的工具列,工具視窗中的工具列必須停駐,而且無法移動或自訂。 如果 VSPackage 是以非受控程式碼撰寫,則工具列可以停駐在任何邊緣。

如需如何新增工具列的詳細資訊,請參閱新增工具列

建立工具視窗的工具列

  1. 建立名為 TWToolbar 的 VSIX 專案,其中包含名為 TWTestCommand 的功能表命令,以及名為 TestToolWindow 的工具視窗。 如需詳細資訊,請參閱使用功能表命令建立延伸模組使用工具視窗建立延伸模組。 新增工具視窗範本之前,您必須先新增命令項目範本。

  2. 在 TWTestCommandPackage.vsct 中,尋找 Symbols 區段。 在名為 guidTWTestCommandPackageCmdSet 的 GuidSymbol 節點中,宣告工具列和工具列群組,如下所示。

    <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. 在 Groups 區段中,定義要包含工具列命令的群組。

    
    <Group guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" priority="0x0000">
        <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" />
    </Group>
    
  5. 在 Buttons 區段中,將現有 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. 在 [檢視/ 其他視窗] 功能表上,按一下 [測試 ToolWindow] 以顯示工具視窗。

    您應該會在工具視窗左上方看到工具列 (看起來像預設圖示),就在標題下方。

  3. 在工具列上,按一下圖示以顯示訊息「TWTestCommandPackage 位於 TWToolbar.TWTestCommand.MenuItemCallback() 內」