WPF ツールボックス コントロールを作成する

WPF (Windows Presentation Framework) ツールボックス コントロール テンプレートを使用すると、拡張機能のインストール時に自動的にツールボックスに追加される WPF コントロールを作成できます。 このチュートリアルでは、テンプレートを使用して、他のユーザーに配布できるツールボックス コントロールを作成する方法について説明します。

ツールボックス コントロールを作成する

WPF ツールボックス コントロールを使用して拡張機能を作成する

  1. MyToolboxControl という名前の VSIX プロジェクトを作成します。 VSIX プロジェクト テンプレートは、[新しいプロジェクト] ダイアログで「vsix」と検索すると見つかります。

  2. プロジェクトが開いたら、MyToolboxControl という名前の WPF ツールボックス コントロール項目テンプレートを追加します。 ソリューション エクスプローラーで、プロジェクト ノードを右クリックして、[追加]>[新しい項目] の順に選択します。 [新しい項目の追加] ダイアログで、[Visual C#]>[拡張性] に移動して、[WPF ツールボックス コントロール] を選択します。 ウィンドウの下部にある [名前] フィールドで、コマンド ファイル名を MyToolboxControl.cs に変更します。

    ソリューションには、ツールボックスにコントロールを追加し、デプロイ用の VSIX マニフェストに Microsoft.VisualStudio.ToolboxControl アセット エントリを追加するユーザー コントロール ProvideToolboxControlAttributeRegistrationAttribute が含まれるようになりました。

コントロール UI を作成するには

  1. デザイナーで MyToolboxControl.xaml を開きます。

    デザイナーに、Button コントロールを含む Grid コントロールが表示されます。

  2. グリッド レイアウトを配置します。 Grid コントロールを選択すると、グリッドの上端と左端に青色のコントロール バーが表示されます。 グリッドに行と列を追加するには、バーをクリックします。

  3. グリッドに子コントロールを追加します。 子コントロールは、ツールボックスからグリッドのセクションにドラッグするか、XAML で Grid.Row および Grid.Column 属性を設定することによって配置できます。 次の例では、グリッドの一番上の行に 2 つのラベルを追加し、2 番目の行にボタンを追加します。

    <Grid>
        <Label Grid.Row="0" Grid.Column="0" Name="label1" />
        <Label Grid.Row="0" Grid.Column="1" Name="label2" />
        <Button Name="button1" Click="button1_Click" Grid.Row="1" Grid.ColumnSpan="2" />
    </Grid>
    

コントロールの名前を変更する

既定では、コントロールは、MyToolboxControl.MyToolboxControl という名前のグループの MyToolboxControl としてツールボックスに表示されます。 これらの名前は MyToolboxControl.xaml.cs ファイルで変更できます。

  1. コード ビューで MyToolboxControl.xaml.cs を開きます。

  2. MyToolboxControl クラスを見つけて、その名前を TestControl に変更します。 (これを行う最も早い方法は、クラスの名前を変更し、コンテキスト メニューから [名前の変更] を選択して、手順を完了することです。 ([名前の変更] コマンドの詳細については、名前の変更のリファクタリング (C#) に関する記事を参照してください。)

  3. ProvideToolboxControl 属性に移動し、最初のパラメーターの値を「Test」に変更します。 これは、ツールボックスのコントロールを含むグループの名前です。

    結果のコードは次のようになります。

    [ProvideToolboxControl("Test", true)]
    public partial class TestControl : UserControl
    {
        public TestControl()
        {
            InitializeComponent();
        }
    }
    

ビルド、テスト、デプロイ

プロジェクトをデバッグするときに、Visual Studio の実験用インスタンスのツールボックスにコントロールがインストールされている必要があります。

コントロールをビルドおよびテストするには

  1. プロジェクトをリビルドし、デバッグを開始します。

  2. Visual Studio の新しいインスタンスで、WPF アプリケーション プロジェクトを作成します。 XAML デザイナーが開いていることを確認します。

  3. [ツールボックス] で対象のコントロールを見つけて、デザイン画面にドラッグします。

  4. WPF アプリケーションのデバッグを開始します。

  5. コントロールが表示されることを確認します。

コントロールを配置するには

  1. テストされたプロジェクトをビルドすると、プロジェクトの *\bin\debug* フォルダーで .vsix ファイルを見つけることができます。

  2. .vsix ファイルをダブルクリックし、インストール手順に従うことによって、ローカル コンピューターにそれをインストールすることができます。 コントロールをアンインストールするには、[ツール]>[拡張機能と更新プログラム] に移動し、コントロールの拡張機能を見つけて、[アンインストール] をクリックします。

  3. .vsix ファイルをネットワークまたは Web サイトにアップロードします。

    ファイルを Visual Studio Marketplace Web サイトにアップロードした場合、他のユーザーは Visual Studio の [ツール]>[拡張機能と更新プログラム] を使用し、コントロールをオンラインで見つけてインストールすることができます。