演练:使用 XAML 在 Windows Presentation Foundation 中承载 Windows 窗体控件

更新:2007 年 11 月

WPF 提供了许多具有丰富功能集的控件。但是,您有时可能希望在 WPF 页上使用 Windows 窗体控件。例如,您可能需要对现有 Windows 窗体控件进行大量投资,或者您有一个提供唯一功能的 Windows 窗体控件。

本演练向您演示如何使用 XAML 在 WPF 页中承载 Windows 窗体 System.Windows.Forms.MaskedTextBox 控件。

有关本演练中演示的任务的完整代码清单,请参见使用 XAML 在 Windows Presentation Foundation 中承载 Windows 窗体控件的示例

注意 显示的对话框和菜单命令可能与“帮助”中所述的有所不同,具体取决于当前的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

先决条件

您需要以下组件来完成本演练:

  • Visual Studio 2008.

承载 Windows 窗体控件

承载 MaskedTextBox 控件

  1. 创建名为 HostingWfInWpf 的 WPF 应用程序项目。

  2. 在解决方案资源管理器中,添加一个对名为 WindowsFormsIntegration.dll 的 WindowsFormsIntegration 程序集的引用。

  3. 在解决方案资源管理器中,添加一个对名为 System.Windows.Forms.dll 的 Windows 窗体程序集的引用。

  4. 在 WPF 设计器中打开 Window1.xaml。

  5. 用下例中的代码替换 Window1.xaml 中的代码。

    wf 命名空间映射建立一个对包含 Windows 窗体 控件的 DLL 的引用。MaskedTextBox 控件创建为 WindowsFormsHost 控件的子控件。

    <Window x:Class="Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"  
        Title="HostingWfInWpf"
        >
    
      <Grid>
    
        <WindowsFormsHost>
          <wf:MaskedTextBox x:Name="mtbDate" Mask="00/00/0000"/>
        </WindowsFormsHost>
    
      </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"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"  
        Title="HostingWfInWpf"
        >
    
        <Grid>
    
            <WindowsFormsHost>
                <wf:MaskedTextBox x:Name="mtbDate" Mask="00/00/0000"/>
            </WindowsFormsHost>
    
        </Grid>
    
    
    </Window>
    

请参见

任务

演练:在 Windows Presentation Foundation 中承载 Windows 窗体控件

使用 XAML 在 Windows Presentation Foundation 中承载 Windows 窗体控件的示例

概念

演练:在 Windows Presentation Foundation 中承载 Windows 窗体复合控件

演练:在 Windows 窗体中承载 Windows Presentation Foundation 控件

Windows 窗体控件和等效的 WPF 控件

参考

ElementHost

WindowsFormsHost

其他资源

WPF 设计器

迁移和互操作性帮助主题