Exemplarische Vorgehensweise: Hosten eines Windows Forms-Steuerelements in Windows Presentation Foundation
Aktualisiert: November 2007
WPF stellt viele Steuerelemente mit einem umfangreichen Featuresatz bereit. Möglicherweise möchten Sie aber manchmal Windows Forms-Steuerelemente auf den WPF-Seiten verwenden. Beispielsweise könnte eine beträchtliche Investition in Windows Forms-Steuerelementen vorliegen, oder Sie verfügen über ein Windows Forms-Steuerelement, das eine einzigartige Funktionalität zur Verfügung stellt.
In dieser exemplarischen Vorgehensweise wird das Hosten eines Windows FormsSystem.Windows.Forms.MaskedTextBox-Steuerelements auf einer WPF-Seite mithilfe von Code beschrieben.
Eine vollständige Codeauflistung der Aufgaben in dieser exemplarischen Vorgehensweise finden Sie unter Beispiel zum Hosten eines Windows Forms-Steuerelements in Windows Presentation Foundation.
Hinweis: Je nach den aktiven Einstellungen oder der verwendeten Version können sich die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen unterscheiden. Wählen Sie im Menü Extras die Option Einstellungen importieren und exportieren aus, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
- Visual Studio 2008.
Hosten des Windows Forms-Steuerelements
So hosten Sie das MaskedTextBox-Steuerelement
Erstellen Sie ein WPF-Anwendungsprojekt mit dem Namen HostingWfInWpf.
Fügen Sie im Projektmappen-Explorer einen Verweis auf die WindowsFormsIntegration-Assembly mit dem Namen WindowsFormsIntegration.dll hinzu.
Fügen Sie im Projektmappen-Explorer einen Verweis auf die Windows Forms-Assembly mit dem Namen System.Windows.Forms.dll hinzu.
Öffnen Sie im WPF-Designer die Datei Window1.xaml.
Ersetzen Sie in der Datei Window1.xaml das automatisch generierte XAML durch das folgende 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>
Öffnen Sie Window1.xaml.cs im Code-Editor.
Ersetzen Sie den Code in Window1.xaml.cs durch den folgenden Code.
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); } } }
Siehe auch
Aufgaben
Beispiel zum Hosten eines Windows Forms-Steuerelements in Windows Presentation Foundation
Konzepte
Windows Forms-Steuerelemente und äquivalente WPF-Steuerelemente