在WPF .NET 6应用中能否使用FolderBrowserDialog控件?
.NET 6 WPF项目使用文件夹选择控件的解决方案
一、沿用WinForms FolderBrowserDialog的实现方法
该需求完全可以实现,.NET 6 WPF项目仅需修改项目配置即可正常调用WinForms控件:
- 右键你的WPF项目,选择「编辑项目文件」,在顶层
<PropertyGroup>节点中新增2行配置:<UseWPF>true</UseWPF> <UseWindowsForms>true</UseWindowsForms> - 保存项目文件后重新加载项目,即可正常引用
System.Windows.Forms命名空间,和.NET 5版本的调用逻辑完全一致,示例代码如下:using System.Windows.Forms; // 文件夹选择调用逻辑 var folderDialog = new FolderBrowserDialog(); if (folderDialog.ShowDialog() == DialogResult.OK) { string selectedPath = folderDialog.SelectedPath; // 业务逻辑处理 }
注意:WPF和WinForms存在同名控件类,调用时建议补全命名空间避免冲突。
二、WPF原生无依赖替代方案
如果不想引入WinForms相关依赖,可使用.NET 6 WPF原生提供的文件夹选择方案:
- .NET 5及以上版本的WPF框架已原生内置
OpenFolderDialog,不需要额外引入其他依赖,调用示例如下:using Microsoft.Win32; var folderDialog = new OpenFolderDialog(); if (folderDialog.ShowDialog() == true) { string selectedPath = folderDialog.FolderName; // 业务逻辑处理 } - 若需要自定义可视化的文件浏览器界面,可基于WPF原生的TreeView、ListView控件自行封装目录树展示逻辑,也可直接使用社区成熟的开源WPF文件浏览器组件。
内容的提问来源于stack exchange,提问作者Álvaro García
相关产品推荐
相关产品推荐

