本文介绍如何创建 Windows Presentation Foundation (WPF) 控件,以便在基于 Windows 窗体的应用程序中使用。
先决条件
需要 Visual Studio 才能完成本演练。
创建项目
打开 Visual Studio,并用 Visual Basic 或 Visual C# 创建一个名为 HostingWpf
的新 Windows 窗体应用(.NET Framework) 项目。
注释
托管 WPF 内容时,仅支持 C# 和 Visual Basic 项目。
创建新的 WPF 控件
创建新的 WPF 控件并将其添加到项目非常简单,就像向项目添加任何其他项一样简单。 Windows 窗体设计器适用于名为 复合控件或 用户控件的特定控件类型。 有关 WPF 用户控件的详细信息,请参阅 UserControl。
注释
System.Windows.Controls.UserControl WPF 的类型不同于 Windows 窗体提供的用户控件类型,该类型也命名System.Windows.Forms.UserControl。
创建新的 WPF 控件:
在 解决方案资源管理器中,向解决方案添加新的 WPF 用户控制库 (.NET Framework) 项目。 使用控件库的默认名称。
WpfControlLibrary1
默认控件名称为UserControl1.xaml
.添加新控件具有以下效果:
添加了文件 UserControl1.xaml。
添加了文件UserControl1.xaml.cs(或UserControl1.xaml.vb)。 此文件包含事件处理程序和其他功能的后台代码。
添加了对 WPF 程序集的引用。
文件 UserControl1.xaml 将在 Visual Studio 的 WPF 设计器中打开。
在“设计”视图中,确保已选择
UserControl1
。从 工具箱中,将 System.Windows.Controls.TextBox 控件拖到设计图面上。
在 “属性” 窗口中,将 Text 属性的值设置为 “托管内容”。
注释
通常,应托管更复杂的 WPF 内容。 此处 System.Windows.Controls.TextBox 控件仅用于说明目的。
构建项目。
将 WPF 控件添加到 Windows 窗体
新的 WPF 控件已准备好可以在窗体上使用。 Windows 窗体使用 ElementHost 控件来托管 WPF 内容。
将 WPF 控件添加到 Windows 窗体:
在 Windows 窗体设计器中打开
Form1
。在 工具箱中,找到标记为 WPFUserControlLibrary WPF 用户控件的选项卡。
将实例
UserControl1
拖到窗体上。控件 ElementHost 在窗体上自动创建,用于托管 WPF 控件。
控件ElementHost命名并在
elementHost1
“属性”窗口中,可以看到其Child属性已设置为 UserControl1。对 WPF 程序集的引用将添加到项目中。
该
elementHost1
控件具有一个智能标记面板,其中显示了可用的托管选项。
在 ElementHost Tasks 智能标记面板中,选择 父容器中的 Dock。
按 F5 生成和运行应用程序。
后续步骤
Windows 窗体和 WPF 是不同的技术,但它们旨在进行密切互作。 若要在应用程序中提供更丰富的外观和行为,请尝试以下作:
在 WPF 页中托管 Windows Forms 控件。 有关详细信息,请参阅 演练:在 WPF 中托管 Windows 窗体控件。
将 Windows 窗体视觉样式应用于 WPF 内容。 有关详细信息,请参阅 “如何:在混合应用程序中启用视觉样式”。
更改 WPF 内容的样式。 有关详细信息,请参阅 操作指南:设置 WPF 内容的样式。