逐步解說:在 Windows Presentation Foundation 中裝載 Windows Form 控制項
更新:2007 年 11 月
WPF 提供許多具有豐富功能集的控制項。但是,您有時候可能會想要在 WPF 頁面上使用 Windows Form 控制項。例如,您可能對現有的 Windows Form 控制項做了大筆投資,或擁有具備獨一無二功能的 Windows Form 控制項。
本逐步解說說明如何使用程式碼在 WPF 頁面上裝載 Windows FormSystem.Windows.Forms.MaskedTextBox 控制項。
如需本逐步說明中所說明之工作的完整程式碼清單,請參閱在 Windows Presentation Foundation 中裝載 Windows Form 控制項範例。
注意:根據您目前使用的設定或版本,您所看到的對話方塊與功能表命令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定。
必要條件
您需要下列元件才能完成此逐步解說:
- Visual Studio 2008。
裝載 Windows Form 控制項
若要裝載 MaskedTextBox 控制項
建立名為 HostingWfInWpf 的 WPF 應用程式專案。
在 [方案總管] 中,加入名為 WindowsFormsIntegration.dll 之 WindowsFormsIntegration 組件的參考。
在 [方案總管] 中,加入名為 System.Windows.Forms.dll 之 Windows Form 組件的參考。
在 WPF 設計工具中開啟 Window1.xaml。
以下列 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); } } }
請參閱
工作
逐步解說:使用 XAML 在 Windows Presentation Foundation 中裝載 Windows Form 控制項
在 Windows Presentation Foundation 中裝載 Windows Form 控制項範例
概念
逐步解說:在 Windows Presentation Foundation 中裝載 Windows Form 複合控制項
逐步解說:在 Windows Form 中裝載 Windows Presentation Foundation 控制項