共用方式為


逐步解說:在 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 控制項

  1. 建立名為 HostingWfInWpf 的 WPF 應用程式專案。

  2. 在 [方案總管] 中,加入名為 WindowsFormsIntegration.dll 之 WindowsFormsIntegration 組件的參考。

  3. 在 [方案總管] 中,加入名為 System.Windows.Forms.dll 之 Windows Form 組件的參考。

  4. 在 WPF 設計工具中開啟 Window1.xaml。

  5. 以下列 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>
    
  6. 在 [程式碼編輯器] 中開啟 Window1.xaml.cs。

  7. 以下列程式碼取代 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 控制項

Windows Form 控制項和對等 WPF 控制項

參考

ElementHost

WindowsFormsHost

其他資源

WPF 設計工具

移轉和互通性 HOW TO 主題