Aracılığıyla paylaş


İzlenecek yol: WPF'de Windows Forms Denetimi Barındırma

WPF, zengin bir özellik kümesiyle birçok denetim sağlar. Ancak bazen WPF sayfalarınızda Windows Forms denetimlerini kullanmak isteyebilirsiniz. Örneğin, mevcut Windows Forms denetimlerine önemli bir yatırım yapmış veya benzersiz işlevsellik sağlayan bir Windows Forms denetiminiz olabilir.

Bu kılavuzda, kod kullanarak bir WPF sayfasında Windows Forms System.Windows.Forms.MaskedTextBox denetiminin nasıl barındırılacağı gösterilmektedir.

Bu kılavuzda gösterilen görevlerin tam kod listesi için bkz. WPF'de Windows Forms Denetimi Barındırma Örnek.

Önkoşullar

Bu kılavuzu tamamlamak için Visual Studio'ya ihtiyacınız vardır.

Windows Forms Kontrolünü Barındırma

MaskedTextBox denetimini barındırmak için

  1. HostingWfInWpfadlı bir WPF Uygulaması projesi oluşturun.

  2. Aşağıdaki derlemelere referanslar ekleyin.

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. WPF Tasarımcısı'nda MainWindow.xaml dosyasını açın.

  4. Grid öğesini grid1adlandırın.

    <Grid Name="grid1">
        
    </Grid>
    
  5. Tasarım görünümünde veya XAML görünümünde Window öğesini seçin.

  6. Özellikler penceresinde Olaylar sekmesine tıklayın.

  7. Loaded etkinliğine çift tıklayın.

  8. Loaded olayını işlemek için aşağıdaki kodu ekleyin.

    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. Dosyanın en üstüne aşağıdaki Imports veya using deyimini ekleyin.

    using System.Windows.Forms;
    
    Imports System.Windows.Forms
    
  10. Uygulamayı derlemek ve çalıştırmak için F5 basın.

Ayrıca bakınız