Пошаговое руководство. Размещение элемента управления Windows Forms в приложении WPF
WPF предоставляет множество элементов управления с богатым набором функций. Однако иногда целесообразно использовать на страницах Windows Forms элементы управления WPF. Допустим, вы много инвестировали в существующие элементы управления Windows Forms или имеете элемент управления Windows Forms, предоставляющий уникальную функциональность.
В этом пошаговом руководстве показано, как разместить элемент управления System.Windows.Forms.MaskedTextBox Windows Forms на странице WPF с помощью кода.
Полный пример кода для задач, демонстрируемых в этом пошаговом руководстве, см. в разделе Пример размещения элемента управления Windows Forms в WPF.
Необходимые компоненты
Для выполнения шагов, описанных в этом руководстве, вам понадобится Visual Studio.
Размещение элемента управления Windows Forms
Чтобы разместить элемент управления MaskedTextBox, выполните следующие действия.
Создайте проект приложения WPF с именем
HostingWfInWpf
.Добавьте ссылки на следующие сборки.
WindowsFormsIntegration
System.Windows.Forms.
Откройте Файл MainWindow.xaml в конструкторе WPF.
Присвойте элементу Grid имя
grid1
.<Grid Name="grid1"> </Grid>
В представлении конструирования или XAML выделите элемент Window.
В окне свойств щелкните вкладку События.
Дважды щелкните событие Loaded.
Вставьте следующий код в обработчик события 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
Вверху файла добавьте инструкцию
Imports
илиusing
.using System.Windows.Forms;
Imports System.Windows.Forms
Нажмите клавишу F5 для сборки и запуска приложения.
См. также
- ElementHost
- WindowsFormsHost
- Проектирование XAML в Visual Studio
- Пошаговое руководство. Размещение элемента управления Windows Forms в приложении WPF с помощью XAML
- Пошаговое руководство. Размещение составного элемента управления Windows Forms в приложении WPF
- Пошаговое руководство. Размещение составного элемента управления WPF в форме Windows Forms
- Элементы управления Windows Forms и эквивалентные элементы управления WPF
- Пример размещения элемента управления Windows Forms в приложении WPF
.NET Desktop feedback