次の方法で共有


チュートリアル : WPF デザイナーを使用した Windows フォーム ユーザー コントロールのホスト

このチュートリアルでは、WPF Designer for Visual Studio を使用して、Windows フォーム複合コントロールを WPF アプリケーションでホストする方法について説明します。Windows フォームと WPF の相互運用性の詳細については、「移行と相互運用性」を参照してください。 

このチュートリアルでは、以下のタスクについて説明します。

  • プロジェクトの作成。

  • Windows フォーム複合コントロールの作成。

  • WPF アプリケーションでの Windows フォーム コントロールのホスト。

注意

実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

  • Visual Studio 2010。

プロジェクトの作成

最初に、ホスト アプリケーションのプロジェクトを作成します。

プロジェクトを作成するには

  1. "DemoApplication" という名前の WPF アプリケーション プロジェクトを作成します。 詳細については、「方法 : 新しい WPF アプリケーション プロジェクトを作成する」を参照してください。

    WPF デザイナーで MainWindow.xaml が開きます。 

  2. ソリューション エクスプローラーで、WindowsFormsIntegration.dll という名前の WindowsFormsIntegration アセンブリへの参照を追加します。

  3. ソリューション エクスプローラーで、System.Windows.Forms.dll という名前の Windows フォーム アセンブリへの参照を追加します。

Windows フォーム複合コントロールの作成

ここでは、コンテンツに合わせてサイズが変更される複合コントロールを作成する方法について説明します。 TableLayoutPanel コントロールと AutoSize プロパティは、コントロールの動的レイアウト機能を提供します。 詳細については、「TableLayoutPanel コントロール (Windows フォーム)」を参照してください。

Windows フォーム複合コントロールを作成するには

  1. "DemoControlLibrary" という名前の新しい Windows フォーム コントロール ライブラリ プロジェクトをソリューションに追加します。 詳細については、「方法 : ソリューション項目を追加および削除する」を参照してください。

    Windows フォーム デザイナーで UserControl1 を開きます。

  2. ツールボックスTableLayoutPanel コントロールをダブルクリックします。 TableLayoutPanel コントロールがデザイン サーフェイスに表示されます。

  3. [TableLayoutPanel タスク] スマート タグ メニューの [最終行の削除] をクリックします。

  4. [プロパティ] ウィンドウで、Dock プロパティの値を Fill に設定します。

  5. ツールボックスから、Label コントロールを TableLayoutPanel コンロトールの最初のセルに追加します。

  6. [プロパティ] ウィンドウで、Label コントロールに対して次のプロパティを設定します。

    プロパティ

    AutoSize

    True

    Dock

    Fill

    Margin

    0,0,0,0

    Text

    Enter Date:

    TextAlign

    MiddleCenter

  7. ツールボックスから、MaskedTextBox コントロールを TableLayoutPanel コントロールの 2 つ目のセルに追加します。

  8. MaskedTextBox コントロールのスマート タグ グリフ (スマート タグ グリフ) をクリックし、[MaskedTextBox タスク] メニューの [マスクの設定] をクリックします。

    [定型入力] ダイアログ ボックスが表示されます。

  9. [マスクの説明] 列の [短い日付] (または別の定義済みのマスクの説明) を選択し、[OK] ボタンをクリックします。

  10. [プロパティ] ウィンドウの上部にあるドロップダウン リストで TableLayoutPanel コントロールを選択します。

  11. AutoSize プロパティの値を true に設定します。

  12. [プロパティ] ウィンドウの上部で、[UserControl1] を選択します。

  13. AutoSize プロパティ値を true に設定し、Size プロパティ値を 0,0 に設定します。

    これで、UserControl1 はコンテンツに合わせてサイズが変更されるようになります。

  14. [ビルド] メニューの [ソリューションのビルド] をクリックして、ソリューションをビルドします。

WPF での Windows フォーム コントロールのホスト

WindowsFormsHost 要素を使用して、UserControl1 を WPF アプリケーションでホストします。

WPF で Windows フォーム コントロールをホストするには

  1. ソリューション エクスプローラーの DemoApplication プロジェクトに DemoControlLibrary プロジェクトへの参照を追加します。 詳細については、「方法: Visual Studio で参照を追加または削除する」を参照してください。

  2. WPF デザイナーで MainWindow.xaml を開きます。

  3. XAML ビューで、次の名前空間割り当てを開始 Window タグ内に挿入して、DemoControlLibrary 名前空間をインポートします。 詳細については、「方法 : 名前空間を XAML にインポートする」を参照してください。

    xmlns:dc="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
    
  4. Grid 開始タグの後に、次のコードを挿入します。

    <WindowsFormsHost HorizontalAlignment="Left" VerticalAlignment="Top">
        <dc:UserControl1/>
    </WindowsFormsHost>
    

    デザイナーに、ホストされている Windows フォーム コントロールを表す領域が表示されます。

  5. ソリューションを実行してユーザー コントロールをテストします。

次の手順

WPF コントロールを Windows フォームでホストすることもできます。 詳細については、「WPF コントロールの使用」を参照してください。

参照

処理手順

チュートリアル: WPF での Windows フォーム コントロールのホスト

参照

WindowsFormsHost

ElementHost

その他の技術情報

WPF デザイナーでのコントロールの操作

移行と相互運用性