ツール ウィンドウにツール バーを追加する
このチュートリアルでは、ツール ウィンドウにツール バーを追加する方法について説明します。
ツール バーとは、コマンドにバインドされたボタンを含む、水平または垂直のストリップです。 ツール ウィンドウのツール バーの長さは、ツール バーがドッキングされている場所に応じて、ツール ウィンドウの幅または高さと常に同じになります。
IDE のツール バーとは異なり、ツール ウィンドウのツール バーはドッキングされている必要があり、移動することもカスタマイズすることもできません。 VSPackage が アンマネージド コードで記述されている場合は、このツール バーをどの端にもドッキングできます。
ツール バーを追加する方法の詳細については、「ツール バーの追加」をご覧ください。
ツール ウィンドウのツール バーを作成する
TWTestCommand という名前のメニュー コマンドと TestToolWindow という名前のツール ウィンドウの両方を含む、
TWToolbar
という名前の VSIX プロジェクトを作成します。 詳細については、「メニュー コマンドを使用して拡張機能を作成する」および「ツール ウィンドウで拡張機能を作成する」をご覧ください。 ツール ウィンドウ テンプレートを追加する前に、コマンド項目テンプレートを追加する必要があります。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 Inside TWToolbar.TWTestCommand.MenuItemCallback() というメッセージが表示されます。