Поделиться через


Пошаговое руководство. Размещение элемента управления Windows Forms в приложении WPF

WPF содержит множество элементов управления с богатым набором функций. Однако иногда может возникнуть потребность в использовании элементов управления Windows Forms на страницах WPF. Например, можно получить значительные преимущества от использования существующих элементов управления Windows Forms или можно использовать элемент управления Windows Forms с уникальными функциональными возможностями.

В данном пошаговом руководстве показано, как разместить элемент управления Windows Forms System.Windows.Forms.MaskedTextBox на странице WPF с помощью кода.

Полный пример кода для задач, приведенных в этом руководстве, см. в разделе Пример размещения элемента управления Windows Forms в приложении WPF.

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

  • Visual Studio 2010.

Размещение элемента управления Windows Forms

Чтобы разместить элемент управления MaskedTextBox

  1. Создайте проект приложения WPF с именем HostingWfInWpf.

  2. Добавьте ссылки на следующие сборки:

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. Откройте файл MainWindow.xaml в сред. Конструктор WPF.

  4. Присвойте элементу Grid имя grid1.

    <Grid Name="grid1">
    
    </Grid>
    
  5. В представлении конструирования или представлении XAML выберите элемент Window.

  6. В окне свойств перейдите на вкладку События.

  7. Дважды щелкните событие Loaded.

  8. Вставьте следующий код для обработки события 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. В начало файла добавьте следующий оператор Imports или using.

    Imports System.Windows.Forms
    
    using System.Windows.Forms;
    
  10. Нажмите клавишу F5 для построения и запуска приложения.

См. также

Задачи

Пошаговое руководство. Размещение элемента управления Windows Forms в приложении WPF с помощью XAML

Ссылки

ElementHost

WindowsFormsHost

Основные понятия

Пошаговое руководство. Размещение составного элемента управления Windows Forms в приложении WPF

Пошаговое руководство. Размещение составного элемента управления WPF в форме Windows Forms

Элементы управления Windows Forms и эквивалентные элементы управления WPF

Другие ресурсы

Конструктор WPF

Hosting a Windows Forms Control in WPF Sample

Журнал изменений

Дата

Журнал

Причина

Август 2010 г.

Обновлено для Visual Studio 2010.

Обратная связь от клиента.