How to: 建立工具列的工具視窗
您可以藉由定義型別的功能表工具視窗加入工具列ToolWindowToolbar VSPackage.vsct 檔案,然後程式設計以顯示該套件中。
以下列方式,從一般的整合式的開發環境 (IDE) 中的工具列不同的工具視窗的工具列:
IDE 工具列可以建立只是藉由定義型別的功能表Toolbar .vsct 檔案中。 必須以程式設計的方式建立工具視窗工具列,在 [目標] 工具視窗。
使用者可以藉由設定 IDE 工具列自訂對話方塊。 您無法以這種方式設定工具視窗工具列。
建立工具視窗工具列
工具視窗工具列的第一次定義是Menu 項目 .vsct 檔案中。
下列程序假設您已定義在.vsct 檔案中的工具視窗的 VSPackage 專案。 如果您要建立的 VSPackage 套件精靈] 中,選取 的工具視窗 .vsct 檔案加入封裝的專案,並定義工具視窗。
若要建立工具視窗工具列
在編輯器中開啟.vsct 檔案。
找到的構成方式的部份Symbols 項目。
找出GuidSymbol 項目 ,包含您的功能表、 群組及指令。 預設情況下,它稱為 guid<ProjectName>CmdSet。
新增IDSymbol 項目您的工具列,和一個群組來保留您的命令,如下列範例所示。
<IDSymbol name="TWToolbar" value="0x1000" /> <IDSymbol name="TWToolbarGroup" value="0x1050" />
name屬性的GuidSymbol和IDSymbol中定義的工具列、 指令或群組的項目提供一 GUID:ID 組,表示該工具列、 指令或群組。 GUID代表一組係專為您 VSPackage 的命令。 您可以封裝中定義多個命令集。 將 GUID:ID 組是用來識別每個項目必須是唯一的。
定義為工具列Menu 項目在Menus區段,如下所示:
設定guid和id屬性加入新的工具列上的 GUID:ID。
設定type屬性設定為 ToolWindowToolbar。
在Menu項目,使用Strings 項目建立的區段包含了ButtonText 項目和CommandName 項目。 ButtonText項目用來在 IDE 中所顯示的樣子,設定工具列的名稱。 CommandName項目用來設定可以在中輸入命令名稱命令來存取工具列視窗。
下列範例會定義工具視窗工具列。
<Menu guid="guidTWToolbarCmdSet" id="TWToolbar" type="ToolWindowToolbar"> <CommandFlag>DefaultDocked</CommandFlag> <Strings> <ButtonText>Test Toolbar</ButtonText> <CommandName>Test Toolbar</CommandName> </Strings> </Menu>
在Groups區段中,建立Group 項目到包含您想要顯示在工具列的命令。
設定要判定它會顯示在工具列上的群組優先權。
具有較低的優先順序設定的群組會出現在左下方的工具列 (或上方,如何工具列的方向而定)。
設定工具列的 GUID:ID 群組的父代。
下列群組會出現在前一個範例中定義的工具列上。
<Group guid="guidTWToolbarCmdSet" id="TWToolbarGroup" priority="0x0000"> <Parent guid="guidTWToolbarCmdSet" id="TWToolbar" /> </Group>
在 [工具] 視窗中顯示工具列
使用管理套件架構 (MPF) 設計程式封裝,以顯示在 [工具] 視窗的工具列。
ToolBar屬性的ToolWindowPane類別讓CommandID執行個體當做它的值。 CommandID執行個體採用 (字串) Guid,以及 (int) id。 藉由設定這些檔案來 GUID:ID 一對工具列,工具列會繫結至工具視窗。 一般而言,這是衍生自該類別的建構函式在ToolWindowPane類別。
使用 MPF 來建置 managed 程式碼工具視窗可以有多個工具列。
若要在 [工具] 視窗中顯示工具列
當您使用 「 封裝精靈 」,Guid 會自動新增到命令集建立的 VSPackage GuidList Guids.cs 檔案中定義的類別。 產生的功能表和命令 Id 會加入至PkgCmdIDList PkgCmdID.cs 中所定義的類別。 然後,GUID 及識別碼的值可以存取,在可讀取的表單中,透過這兩個類別。
開啟 [PkgCmdID.cs]。
新增一個項目 [工具] 視窗工具列中,以及任何您想要顯示在工具列上的命令。 每個項目的值必須符合value為相關聯的屬性IDSymbol項目。
下列範例會建立先前定義的工具列項目。
public const int TWToolbar = 0x1000;
開啟 [MyToolWindow.cs]。
在建構函式,將ToolBar屬性的MyToolWindow到新的類別CommandID執行個體的 Guid 及識別碼的工具列與做為參數,如下列範例所示。
this.ToolBar = new CommandID( GuidList.guidTWToolbarCmdSet, PkgCmdIDList.TWToolbar);
如果未定義的 GuidList 和 PkgCmdIDList 類別,您可以使用String的 GUID 值和Int ID 的值代替。