如何在WinForms应用中的WPF窗口上使用Live Visual Tree?
解决WinForms项目中ElementHost承载WPF控件时Live Visual Tree为空的问题
不用把启动项目改成WPF应用就能搞定这个问题!VS2017确实会默认根据启动项目类型加载对应的调试组件,WinForms项目默认不会自动启用WPF的Live Visual Tree支持,但有两种实用方法可以解决:
方法1:调试时手动附加WPF调试支持
- 正常启动你的WinForms项目调试
- 程序运行后,在Visual Studio顶部菜单栏选择 调试 > 附加到进程
- 在进程列表里找到你当前运行的WinForms进程(和项目名称一致)
- 点击窗口右下角的「选择」按钮,在弹出的「代码类型」对话框里,确保勾选了 Managed (.NET Framework) code(这个选项包含WPF调试支持)
- 点击「附加」,之后打开Live Visual Tree(视图 > 其他窗口 > Live Visual Tree),就能看到WPF控件的树结构了
方法2:修改项目配置永久启用WPF调试
如果不想每次调试都手动附加,可以直接修改WinForms项目的配置:
- 右键你的WinForms项目,选择「卸载项目」
- 右键卸载后的项目,选择「编辑 *.csproj」
- 在项目文件的任意一个
<PropertyGroup>节点中(比如默认的配置节点),添加一行配置:<EnableWpfDebugging>true</EnableWpfDebugging> - 保存文件,右键项目选择「重新加载项目」
- 再次启动调试,Live Visual Tree应该会自动识别并显示WPF部分的控件树
额外提醒:确保你的VS2017安装了「.NET桌面开发」工作负载里的WPF调试组件(一般默认都会安装,如果没装的话,打开VS安装器补充安装即可)。
内容的提问来源于stack exchange,提问作者wmebane
相关产品推荐
相关产品推荐

