WinForm 调用 WPF 控件

在传统的 WinForm 应用中集成现代 WPF 控件的方法与实践。

背景介绍

WinForm 是 .NET Framework 中经典的 Windows 桌面 UI 技术,而 WPF(Windows Presentation Foundation)提供了更强大的图形渲染和数据绑定能力。 在某些项目中,可能需要在已有 WinForm 应用中使用 WPF 控件。.NET 提供了 ElementHost 控件来实现这一需求。

基本步骤

  1. 在 WinForm 项目中添加对 WPF 相关程序集的引用(如 PresentationCorePresentationFrameworkWindowsFormsIntegration)。
  2. 创建一个 WPF 用户控件(UserControl)。
  3. 在 WinForm 窗体中拖入或代码创建 ElementHost 控件。
  4. 将 WPF 控件实例赋值给 ElementHost.Child 属性。

示例代码

1. 创建 WPF 用户控件(MyWpfControl.xaml)

<UserControl x:Class="MyApp.MyWpfControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <TextBlock Text="Hello from WPF!" FontSize="16" />
    </Grid>
</UserControl>

2. 在 WinForm 中使用

// 添加引用:
// using System.Windows.Forms.Integration;
// using MyApp; // 包含 WPF 控件的命名空间

private void Form1_Load(object sender, EventArgs e)
{
    var wpfControl = new MyWpfControl();
    var host = new ElementHost
    {
        Dock = DockStyle.Fill,
        Child = wpfControl
    };
    this.Controls.Add(host);
}

注意事项

Windows 10 运行环境要求-官方系统配置指南 如何激活 Windows 11 专业版-官方与合法方法指南 Windows 10 Online 网页版-在线体验 Windows 10 系统 Wind行业分类一、二、三、四级详解-行业标准参考 美国与欧洲 Windows VPS 推荐|高性价比云服务器指南 Win10游戏运行库下载与安装指南 Win10怎么分区硬盘-简明教程 Win11重装系统教程-从零开始轻松安装Windows 11 Win10怎么一键还原系统-简明操作指南 Windows 7 希沃版模拟器-在线体验经典操作系统 Win10老是自动熄屏?原因与解决方法汇总 Windows 11 正版购买指南|安全可靠,官方授权 WinForm 转 WPF 好转吗?全面解析迁移利弊 Winston香烟双爆珠介绍|产品详情与特点 Windows 8 专题介绍-简洁回顾与核心特性 Windows 7 激活说明与合法使用建议 Windy 气象软件官网-实时全球天气预报与气象可视化 Windows 开放指定端口方法指南|简明教程 Windows 11 官方U盘制作工具-下载与使用指南 Windows 7 桌面系统下载与安装指南 Windows 11 专业版-简洁介绍与功能概览 如何将Windows电源计划设置为高性能-简明教程 Windows 7 系统设置睡眠模式教程-详细步骤指南 Win7 桌面风景壁纸精选-经典自然与城市风光 Windows 10 还更新吗?官方支持状态与未来展望 Windows 11 最低系统配置要求-官方推荐与兼容性说明 Win98 模拟器 1.4.3-在线体验经典 Windows 98 系统 Windows 取消自动锁屏方法大全-简明教程 怎么看自己的Windows版本-简明教程 Windows 11 价格是多少?官方与各版本售价详解 Win98 模拟器汉化版-在线体验经典 Windows 98 系统 Mac 删除 macOS 只安装 Windows 10 完整指南 Windows终端怎么切换路径-命令行路径切换指南 如何将 Windows 10 改回 Windows 7 系统-简明指南 Windows 10 22H2 和 21H2 哪个更好?对比分析 Win10怎么更新Win11-升级Windows 11详细指南 Windows查看本机已保存的Wi-Fi密码方法-安全实用指南 Windows 10 分配磁盘空间教程-简明指南 Windows 结束进程命令详解-taskkill 使用方法 Windows XP 壁纸原图-经典桌面背景 Windows 10 十一月更新详解|新特性、改进与下载指南 Windows 7 镜像文件 ISO 下载与使用指南 清除 Windows 7 登录密码工具-免费安全解决方案 Win10一键精简工具-轻松优化Windows 10系统 Windows 默认用户名详解|常见系统账户说明 Windows 7 32位系统下载-官方镜像与安装指南 如何安全地关闭 Windows 11 自带杀毒软件(Microsoft Defender) Windows 7 专业版下载-官方镜像与安装指南 Wind公司一般人能进去吗?招聘门槛与入职条件解析 Win跳过登录账户-快速绕过Windows登录界面教程 Win7锁屏时间太快怎么办?解决方法汇总 Win10怎么强制退出程序或系统?详细方法汇总 激活Windows转到设置激活是什么意思?详细解答 Windows 10 系统安装教程-详细步骤指南 Win8有必要升级到Win10吗?全面分析与建议 Win7超级精简系统500MB-极简高效Windows 7定制版 Windows文件夹太大了怎么清理?实用清理方法汇总 Windows 镜像下载-官方原版 ISO 镜像资源 Win10和Win8哪个好用?系统对比与使用体验分析 联想 Windows 10 专业版-官方支持与信息 Win11怎么关掉密码-禁用Windows 11登录密码方法指南 电脑上的Android是干什么的?详解在PC上运行安卓系统的方法与用途 Windows 10 手机版安装包下载-官方信息页面 Windows升级在哪里?详细操作指南-系统设置帮助 Win7能直接装Win10吗?升级指南与注意事项-系统升级帮助 忘记 Windows 密码怎么办?实用解决方法汇总 如何激活 Windows 10 免费-合法方法指南 如何升级 Windows 11 版本-完整指南 Windows 根据 PID 查找进程-实用命令指南 盗版Win10可以升级Win11吗?官方要求与风险说明 Windows 系统官方下载页面-安全可靠 Windows备份与恢复指南-简明教程 Windows 11 如何更改密码-详细步骤指南 Windows 命令提示符(CMD)使用指南 Win10设置自动息屏-简明操作指南 Winlator 7.1.3 中文版-免费安卓模拟器下载 Windows 10 如何清理 C 盘空间-实用指南 Windows蓝天白云壁纸-高清经典桌面背景下载 Windows 7 虚拟机下载-免费获取官方镜像用于虚拟化测试 Win7最简单升级Win10方法-免费官方升级指南 Win7精简版800M下载-轻量纯净Windows 7系统镜像 Windows 8 和 Windows 8.1 哪个更流畅?对比分析 如何升级 Windows 系统-完整指南 Windows 10 删除密码登录-简明操作指南 Win10还能更新吗?Windows 10支持状态与更新说明 Windows磁盘管理命令详解-常用diskpart与PowerShell命令指南 如何在 Windows 10 中取消睡眠模式-简明指南 如何在现有电脑上安装 Windows 11-简明指南 Windows桌面背景图片在哪里?完整路径与设置方法 Windows 11 自带 Office 吗?详解预装与安装方式 Windows 11 未激活状态说明与常见问题解答 Windows 7 旗舰版升级到 Windows 10 完整指南 Windows 10 模拟器网页版-在线体验经典桌面系统 华硕Win10改Win7详细步骤指南-系统降级教程 装 Windows 10 要收费了吗?2025 年最新解答 Windows 7 跳过登录密码进入系统的方法 Windows 家庭版与专业版区别对比-功能、价格与适用场景 平板电脑可以安装 Windows 吗?全面解析与指南 如何查看Windows系统账户名-简明教程 Win12迟迟不发布:原因与用户期待分析