將工具列新增至工具視窗
本逐步解說說明如何將工具列新增至工具視窗。
工具列是水平或垂直帶狀區域,包含繫結至命令的按鈕。 工具視窗中的工具列長度一律與工具視窗的寬度或高度相同,視工具列停駐的位置而定。
不同於 IDE 中的工具列,工具視窗中的工具列必須停駐,而且無法移動或自訂。 如果 VSPackage 是以非受控程式碼撰寫,則工具列可以停駐在任何邊緣。
如需如何新增工具列的詳細資訊,請參閱新增工具列。
建立工具視窗的工具列
建立名為
TWToolbar
的 VSIX 專案,其中包含名為 TWTestCommand 的功能表命令,以及名為 TestToolWindow 的工具視窗。 如需詳細資訊,請參閱使用功能表命令建立延伸模組和使用工具視窗建立延伸模組。 新增工具視窗範本之前,您必須先新增命令項目範本。在 TWTestCommandPackage.vsct 中,尋找 Symbols 區段。 在名為 guidTWTestCommandPackageCmdSet 的 GuidSymbol 節點中,宣告工具列和工具列群組,如下所示。
<IDSymbol name="TWToolbar" value="0x1000" /> <IDSymbol name="TWToolbarGroup" value="0x1050" />
在
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>
工具列不能像子功能表一樣具巢狀結構。 因此,您不需要指派父代。 此外,您不需要設定優先順序,因為使用者可以移動工具列。 一般而言,工具列的初始位置是以程序設計方式定義,但會保留使用者後續的變更。
在 Groups 區段中,定義要包含工具列命令的群組。
<Group guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" priority="0x0000"> <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" /> </Group>
在 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>
根據預設,如果工具列沒有命令,它就不會出現。
由於新的工具列不會自動新增至工具視窗,因此必須明確新增工具列。 下一節將討論這個部分。
將工具列新增至工具視窗
在 TWTestCommandPackageGuids.cs 中新增下列幾行。
public const string guidTWTestCommandPackageCmdSet = "00000000-0000-0000-0000-0000"; // get the GUID from the .vsct file public const int TWToolbar = 0x1000;
在 TestToolWindow.cs 中,新增下列 using 陳述式。
using System.ComponentModel.Design;
在 TestToolWindow 建構函式中,新增下列一行。
this.ToolBar = new CommandID(new Guid(TWTestCommandPackageGuids.guidTWTestCommandPackageCmdSet), TWTestCommandPackageGuids.TWToolbar);
測試工具視窗中的工具列
建置此專案並開始偵錯。 應該會顯示 Visual Studio 實驗執行個體。
在 [檢視/ 其他視窗] 功能表上,按一下 [測試 ToolWindow] 以顯示工具視窗。
您應該會在工具視窗左上方看到工具列 (看起來像預設圖示),就在標題下方。
在工具列上,按一下圖示以顯示訊息「TWTestCommandPackage 位於 TWToolbar.TWTestCommand.MenuItemCallback() 內」。