チュートリアル : WPF デザイナを使用した Windows フォーム ユーザー コントロールのホスト
更新 : 2007 年 11 月
このチュートリアルでは、Windows Presentation Foundation (WPF) Designer for Visual Studio を使用して、Windows フォーム複合コントロールを WPF アプリケーションでホストする方法について説明します。Windows フォームと WPF の相互運用性の詳細については、「移行と相互運用性」を参照してください。
このチュートリアルでは、以下のタスクについて説明します。
プロジェクトの作成。
Windows フォーム複合コントロールの作成。
WPF アプリケーションでの Windows フォーム コントロールのホスト。
メモ : |
---|
使用している設定またはエディションによっては、ヘルプの記載と異なるダイアログ ボックスやメニュー コマンドが表示される場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。 |
前提条件
このチュートリアルを完了するには、次のコンポーネントが必要です。
- Visual Studio 2008。
プロジェクトの作成
最初に、ホスト アプリケーションのプロジェクトを作成します。
プロジェクトを作成するには
"DemoApplication" という名前の WPF アプリケーション プロジェクトを作成します。詳細については、「方法 : 新しい WPF アプリケーション プロジェクトを作成する」を参照してください。
WPF デザイナで Window1.xaml が開きます。
ソリューション エクスプローラで、WindowsFormsIntegration.dll という名前の WindowsFormsIntegration アセンブリへの参照を追加します。
ソリューション エクスプローラで、System.Windows.Forms.dll という名前の Windows フォーム アセンブリへの参照を追加します。
Windows フォーム複合コントロールの作成
ここでは、コンテンツに合わせてサイズが変更される複合コントロールを作成する方法について説明します。TableLayoutPanel コントロールと AutoSize プロパティは、コントロールの動的レイアウト機能を提供します。詳細については、「TableLayoutPanel コントロール (Windows フォーム)」を参照してください。
Windows フォーム複合コントロールを作成するには
"DemoControlLibrary" という名前の新しい Windows フォーム コントロール ライブラリ プロジェクトをソリューションに追加します。詳細については、「方法 : ソリューション項目を追加および削除する」を参照してください。
Windows フォーム デザイナで UserControl1 を開きます。
ツールボックスの TableLayoutPanel コントロールをダブルクリックします。TableLayoutPanel コントロールがデザイン サーフェイスに表示されます。
[TableLayoutPanel タスク] スマート タグ メニューの [最終行の削除] をクリックします。
ツールボックスから、Label コントロールを TableLayoutPanel コンロトールの最初のセルに追加します。
[プロパティ] ウィンドウで、Label コントロールに対して次のプロパティを設定します。
プロパティ
値
AutoSize
True
Dock
Fill
Margin
0,0,0,0
Text
Enter Date:
TextAlign
MiddleCenter
ツールボックスから、MaskedTextBox コントロールを TableLayoutPanel コントロールの 2 つ目のセルに追加します。
MaskedTextBox コントロールのスマート タグ グリフ () をクリックし、[MaskedTextBox タスク] メニューの [マスクの設定] をクリックします。
[定型入力] ダイアログ ボックスが表示されます。
[マスクの説明] 列の [短い日付] を選択し、[OK] ボタンをクリックします。
[プロパティ] ウィンドウの上部にあるドロップダウン リストで TableLayoutPanel コントロールを選択します。
AutoSize プロパティの値を true に設定します。
[プロパティ] ウィンドウの上部で、[UserControl1] を選択します。
AutoSize プロパティ値を true に設定し、Size プロパティ値を 0,0 に設定します。
これで、UserControl1 はコンテンツに合わせてサイズが変更されるようになります。
[ビルド] メニューの [ソリューションのビルド] をクリックして、ソリューションをビルドします。
WPF での Windows フォーム コントロールのホスト
WindowsFormsHost 要素を使用して、UserControl1 を WPF アプリケーションでホストします。
WPF で Windows フォーム コントロールをホストするには
ソリューション エクスプローラの DemoApplication プロジェクトに DemoControlLibrary プロジェクトへの参照を追加します。詳細については、「方法 : Visual Studio で参照を追加または削除する (Visual Basic)」を参照してください。
WPF デザイナで Window1.xaml を開きます。
XAML ビューで、次の名前空間割り当てを開始 Window タグ内に挿入して、DemoControlLibrary 名前空間をインポートします。詳細については、「方法 : 名前空間を XAML にインポートする」を参照してください。
xmlns:dc="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
Grid 開始タグの後に、次のコードを挿入します。
<WindowsFormsHost HorizontalAlignment="Left" VerticalAlignment="Top"> <dc:UserControl1/> </WindowsFormsHost>
デザイナに、ホストされている Windows フォーム コントロールを表す領域が表示されます。
次の手順
WPF コントロールを Windows フォームでホストすることもできます。詳細については、「Windows Presentation Foundation コントロールの使用」を参照してください。
参照
処理手順
チュートリアル : Windows Presentation Foundation での Windows フォーム コントロールのホスト