Пошаговое руководство. Размещение элемента управления Windows Forms в Windows Presentation Foundation
Обновлен: Ноябрь 2007
WPF содержит множество элементов управления с богатым набором функций. Однако иногда может возникнуть потребность в использовании элементов управления Windows Forms на страницах WPF. Например, можно получить значительные преимущества от использования существующих элементов управления Windows Forms или можно использовать элемент управления Windows Forms с уникальными функциональными возможностями.
В данном пошаговом руководстве показано, как разместить элемент управления Windows Forms System.Windows.Forms.MaskedTextBox на странице WPF с помощью кода.
Полный код приведенных задач, представленных в данном пошаговом руководстве, см. в разделе Пример размещения элемента управления Windows Forms в Windows Presentation Foundation.
Примечание Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска. Чтобы изменить параметры, выберите в меню Сервис команду Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.
Обязательные компоненты
Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты.
- Visual Studio 2008.
Размещение элемента управления Windows Forms
Чтобы разместить элемент управления MaskedTextBox
Создайте проект приложения WPF с именем HostingWfInWpf.
В обозревателе решений добавьте ссылку на сборку WindowsFormsIntegration с именем WindowsFormsIntegration.dll.
В обозревателе решений добавьте ссылку на сборку Windows Forms с именем System.Windows.Forms.dll.
Откройте файл Window1.xaml в конструкторе WPF (конструктор).
Замените автоматически созданный XAML в Window1.xaml следующим кодом XAML.
<Window x:Class="Window1" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Title="HostingWfInWpf" Height="300" Width="300" Loaded="WindowLoaded" > <Grid Name="grid1"> </Grid> </Window>
<Window x:Class="HostingWfInWpf.Window1" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Title="HostingWfInWpf" Loaded="WindowLoaded" > <Grid Name="grid1"> </Grid> </Window>
В редакторе кода откройте файл Window1.xaml.cs.
Замените код в Window1.xaml.cs следующим кодом.
Imports System Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Data Imports System.Windows.Documents Imports System.Windows.Media Imports System.Windows.Media.Imaging Imports System.Windows.Shapes Imports System.Windows.Forms ' Interaction logic for Window1.xaml Partial Public Class Window1 Inherits Window Public Sub New() InitializeComponent() End Sub Private Sub WindowLoaded(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 'WindowLoaded End Class
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Shapes; using System.Windows.Forms; namespace HostingWfInWpf { public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void WindowLoaded(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); } } }
См. также
Задачи
Пример размещения элемента управления Windows Forms в Windows Presentation Foundation
Основные понятия
Обзор: размещение элементов управления Windows Presentation Foundation в приложении Windows Forms
Элементы управления Windows Forms и эквивалентные элементы управления WPF