Návod: Hostování ovládacího prvku Windows Forms v subsystému WPF

WPF poskytuje mnoho ovládacích prvků s bohatou sadou funkcí. Někdy ale můžete chtít použít ovládací prvky model Windows Forms na stránkách WPF. Můžete mít například značné investice do stávajících ovládacích prvků model Windows Forms nebo můžete mít ovládací prvek model Windows Forms, který poskytuje jedinečné funkce.

Tento návod ukazuje, jak hostovat ovládací prvek model Windows Forms System.Windows.Forms.MaskedTextBox na stránce WPF pomocí kódu.

Úplný seznam kódu zobrazených v tomto návodu najdete v tématu Hostování ovládacího prvku model Windows Forms v ukázce WPF.

Předpoklady

K dokončení tohoto návodu potřebujete Visual Studio.

Hostování ovládacího prvku model Windows Forms

Hostování ovládacího prvku MaskedTextBox

  1. Vytvořte projekt aplikace WPF s názvem HostingWfInWpf.

  2. Přidejte odkazy na následující sestavení.

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. Otevřete MainWindow.xaml v Návrháři WPF.

  4. Pojmenujte Grid prvek grid1.

    <Grid Name="grid1">
        
    </Grid>
    
  5. V návrhovém zobrazení nebo v zobrazení XAML vyberte Window prvek.

  6. V okno Vlastnosti klikněte na kartu Události.

  7. Poklikejte na Loaded událost.

  8. Vložte následující kód pro zpracování Loaded události.

    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. V horní části souboru přidejte následující Imports příkaz nebo using příkaz.

    using System.Windows.Forms;
    
    Imports System.Windows.Forms
    
  10. Stiskněte F5, aby se aplikace sestavila a spustila.

Viz také