演练:设计时在 Windows 窗体上创建新的 WPF 内容
本文介绍如何创建 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。
注意
WPF 的 System.Windows.Controls.UserControl 类型不同于 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 任务”智能标记面板中,选择“在父容器中停靠”。
按 F5 生成并运行应用程序。
后续步骤
Windows 窗体和 WPF 是不同的技术,但它们设计为可以密切地互操作。 若要在应用程序中提供更丰富的外观和行为,请尝试以下操作:
在 WPF 页中承载 Windows 窗体控件。 有关详细信息,请参阅演练:在 WPF 中承载 Windows 窗体控件。
将 Windows 窗体的视觉样式应用于你的 WPF 内容。 有关详细信息,请参阅如何:在混合应用程序中启用视觉样式。
更改 WPF 内容的样式。 有关详细信息,请参阅演练:设置 WPF 内容的样式。