演练:设计时在 Windows 窗体上创建新的 WPF 内容

本主题演示如何创建 Windows Presentation Foundation (WPF) 控件,以便在基于 Windows 窗体的应用程序中使用。

在本演练中,您将执行下列任务:

  • 创建项目。

  • 创建新 WPF 控件。

  • 将新的 WPF 控件添加到 Windows 窗体中。 WPF 控件在 ElementHost 控件中承载。

提示

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

系统必备

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

  • Visual Studio 2008.

创建项目

第一步是创建 Windows 窗体项目。

提示

当承载 WPF 内容时,仅支持 C# 和 Visual Basic 项目。

创建项目

创建新 WPF 控件。

创建新 WPF 控件并将其添加到项目中,和将任何其他项添加到项目中一样简单。 Windows 窗体设计器使用一类名为复合控件或用户控件的特殊控件。 有关 WPF 用户控件的更多信息,请参见 UserControl

提示

WPF 的 System.Windows.Controls.UserControl 类型不同于 Windows 窗体提供的用户控件类型,后者也称为 System.Windows.Forms.UserControl

创建新 WPF 控件

  1. 在**“解决方案资源管理器”中,向解决方案添加新的“WPF 用户控件库”**对象。 使用该控件库的默认名称 WpfControlLibrary1。 默认的控件名称为 UserControl1.xaml。

    添加新控件可产生以下效果。

    • 添加文件 UserControl1.xaml。

    • 添加文件 UserControl1.xaml.cs 或 UserControl1.xaml.vb。 该文件包含事件处理程序和其他实现的代码隐藏。

    • 添加对 WPF 程序集的引用。

    • 文件 UserControl1.xaml 在 适用于 Visual Studio 的 WPF 设计器中打开。

  2. 在“设计”视图中,确保选中 UserControl1。 有关更多信息,请参见如何:在设计图面上选择和移动元素

  3. 在**“属性”**窗口中,将 WidthHeight 属性的值设置为 200。

  4. System.Windows.Controls.TextBox 控件从**“工具箱”**中拖动到设计图面。

  5. 在**“属性”**窗口中,将 Text 属性的值设置为“所承载的内容”。

    提示

    通常,您应该承载更复杂的 WPF 内容。 System.Windows.Controls.TextBox 控件在此处仅用于说明目的。

  6. 生成项目。

将 WPF 控件添加到 Windows 窗体

新 WPF 控件已准备好,可在窗体中使用。 Windows 窗体使用 ElementHost 控件承载 WPF 内容。

将 WPF 控件添加到 Windows 窗体

  1. 在 Windows 窗体设计器中打开 Form1。

  2. 在**“工具箱”中,查找标记为“WPFUserControlLibrary WPF 用户控件”**的选项卡。

  3. 将 UserControl1 的实例拖到窗体中。

    • 在窗体上自动创建 ElementHost 控件来承载 WPF 控件。

    • ElementHost 控件命名为 elementHost1,在**“属性”窗口中,可以看到它的 Child 属性设置为“UserControl1”**。

    • 将对 WPF 程序集的引用添加到此项目。

    • elementHost1 控件有一个智能标记面板,显示可用承载选项。

  4. 在**“ElementHost 任务”智能标记面板中,选择“在父容器中停靠”**。

  5. 按 F5 生成并运行该应用程序。

后续步骤

Windows 窗体和 WPF 是不同的技术,但它们可以紧密地进行互操作。 若要在应用程序中提供更丰富的外观和行为,请尝试以下操作。

请参见

参考

ElementHost

WindowsFormsHost

其他资源

迁移和互操作性

使用 WPF 控件

WPF 设计器