Sdílet prostřednictvím


Návod: Hostování ovládacího prvku Windows Forms ve WPF

WPF poskytuje mnoho ovládacích prvků s bohatou sadou funkcí. Někdy ale můžete chtít používat ovládací prvky 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ů Windows Forms nebo máte ovládací prvek Windows Forms, který poskytuje jedinečné funkce.

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

Úplný výpis kódu úloh zobrazených v tomto návodu najdete v tématu Hostování ovládacího prvku Windows Forms v ukázceWPF.

Požadavky

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

Hostování ovládacího prvku 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 prvek Gridgrid1.

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

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

  7. Poklepejte na událost Loaded.

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

    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 nebo using příkaz.

    using System.Windows.Forms;
    
    Imports System.Windows.Forms
    
  10. Stisknutím klávesy F5 sestavte a spusťte aplikaci.

Viz také