次の方法で共有


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

更新 : 2007 年 11 月

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

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

  • プロジェクトの作成。

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

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

Bb514615.alert_note(ja-jp,VS.90).gifメモ :

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

前提条件

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

  • Visual Studio 2008。

プロジェクトの作成

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

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

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

    WPF デザイナで Window1.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 で参照を追加または削除する (Visual Basic)」を参照してください。

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

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

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

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

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

次の手順

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

参照

処理手順

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

参照

WindowsFormsHost

ElementHost

その他の技術情報

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

移行と相互運用性