Condividi tramite


Procedura dettagliata: hosting di controlli Windows Form in WPF

WPF fornisce numerosi controlli con un'ampia gamma di funzionalità. Talvolta si potrebbero tuttavia utilizzare i controlli Windows Forms nelle pagine WPF. È ad esempio possibile avere un investimento sostanziale in controlli Windows Forms esistenti o è possibile disporre di un controllo Windows Forms che fornisce funzionalità univoche.

In questa procedura dettagliata viene illustrato come eseguire l'hosting di un controllo System.Windows.Forms.MaskedTextBox Windows Forms in una pagina WPF tramite codice.

Per un elenco di codice completo delle attività illustrate in questa procedura dettagliata, vedere Esempio di hosting di controlli Windows Form in WPF (la pagina potrebbe essere in inglese).

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

  • Visual Studio 2010.

Hosting di un controllo Windows Form

Per ospitare il controllo MaskedTextBox

  1. Creare un progetto di applicazione WPF denominato HostingWfInWpf.

  2. Aggiungere riferimenti agli assembly riportati di seguito.

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. Aprire MainWindow.xaml in WPF Designer.

  4. Denominare l'elemento Grid grid1.

    <Grid Name="grid1">
    
    </Grid>
    
  5. In visualizzazione Progettazione o XAML selezionare l'elemento Window.

  6. Nella finestra Proprietà fare clic sulla scheda Eventi.

  7. Fare doppio clic sull'evento Loaded.

  8. Inserire il codice riportato di seguito per gestire l'evento Loaded.

    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
    
    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);
    }
    
  9. All'inizio del file, aggiungere l'istruzione Imports o using seguente.

    Imports System.Windows.Forms
    
    using System.Windows.Forms;
    
  10. Premere F5 per compilare ed eseguire l'applicazione.

Vedere anche

Attività

Procedura dettagliata: hosting di controlli Windows Form in WPF tramite XAML

Riferimenti

ElementHost

WindowsFormsHost

Concetti

Procedura dettagliata: hosting di controlli Windows Form compositi in WPF

Procedura dettagliata: hosting di controlli compositi di WPF in Windows Form

Controlli Windows Form e controlli WPF equivalenti

Altre risorse

WPF Designer

Esempio di hosting di controlli Windows Form in WPF

Cronologia delle modifiche

Data

Cronologia

Motivo

Agosto 2010

Aggiornamento per Visual Studio 2010

Commenti e suggerimenti dei clienti.