チュートリアル: WPF での Windows フォーム コントロールのホストWalkthrough: Hosting a Windows Forms Control in WPF

WPFWPF には、豊富な機能セットを備えたさまざまなコントロールが用意されています。provides many controls with a rich feature set. ただし、WPFWPF のページで Windows フォームWindows Forms コントロールを使用することが必要になる場合があります。However, you may sometimes want to use Windows フォームWindows Forms controls on your WPFWPF pages. たとえば、既存の Windows フォームWindows Forms コントロールに多大な投資を行っている場合や、独自の機能を提供する Windows フォームWindows Forms コントロールがある場合があります。For example, you may have a substantial investment in existing Windows フォームWindows Forms controls, or you may have a Windows フォームWindows Forms control that provides unique functionality.

このチュートリアルでは、コードを使用して WPFWPF ページで Windows フォームWindows Forms System.Windows.Forms.MaskedTextBox コントロールをホストする方法について説明します。This walkthrough shows you how to host a Windows フォームWindows Forms System.Windows.Forms.MaskedTextBox control on a WPFWPF page by using code.

このチュートリアルで示されているタスクの完全なコード一覧については、「 WPF の Windows フォームコントロールのホスト」を参照してください。For a complete code listing of the tasks shown in this walkthrough, see Hosting a Windows Forms Control in WPF Sample.

必要条件Prerequisites

このチュートリアルを完了するには Visual Studio が必要です。You need Visual Studio to complete this walkthrough.

Windows フォームコントロールのホストHosting the Windows Forms Control

MaskedTextBox コントロールをホストするにはTo host the MaskedTextBox control

  1. HostingWfInWpfという名前の WPF アプリケーションプロジェクトを作成します。Create a WPF Application project named HostingWfInWpf.

  2. 次のアセンブリへの参照を追加します。Add references to the following assemblies.

    • WindowsFormsIntegrationWindowsFormsIntegration

    • System.Windows.FormsSystem.Windows.Forms

  3. WPF Designerで Mainwindow.xaml を開きます。Open MainWindow.xaml in the WPF Designer.

  4. Grid 要素に grid1という名前を指定します。Name the Grid element grid1.

    <Grid Name="grid1">
        
    </Grid>
    
  5. デザインビューまたは XAML ビューで、Window 要素を選択します。In Design view or XAML view, select the Window element.

  6. プロパティウィンドウで、 [イベント] タブをクリックします。In the Properties window, click the Events tab.

  7. Loaded イベントをダブルクリックします。Double-click the Loaded event.

  8. Loaded イベントを処理する次のコードを挿入します。Insert the following code to handle the Loaded event.

    private void Window_Loaded(object sender, RoutedEventArgs e) 
    {
        // Create the interop host control.
        System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();
    
        // Create the MaskedTextBox control.
        MaskedTextBox mtbDate = new MaskedTextBox("00/00/0000");
    
        // Assign the MaskedTextBox control as the host control's child.
        host.Child = mtbDate;
    
        // Add the interop host control to the Grid
        // control's collection of child controls.
        this.grid1.Children.Add(host);
    }
    
    Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
        ' Create the interop host control.
        Dim host As New System.Windows.Forms.Integration.WindowsFormsHost()
    
        ' Create the MaskedTextBox control.
        Dim mtbDate As New MaskedTextBox("00/00/0000")
    
        ' Assign the MaskedTextBox control as the host control's child.
        host.Child = mtbDate
    
        ' Add the interop host control to the Grid
        ' control's collection of child controls.
        Me.grid1.Children.Add(host)
    
    End Sub
    
  9. ファイルの先頭に、次の Imports または using ステートメントを追加します。At the top of the file, add the following Imports or using statement.

    using System.Windows.Forms;
    
    Imports System.Windows.Forms
    
  10. F5 キーを押してアプリケーションをビルドし、実行します。Press F5 to build and run the application.

関連項目See also