wpf - 有没有办法在 WPF Core 中使用文件夹选择器(FolderBrowserDialog)?
问题描述
我想要一个对话框来选择 WPF Core 应用程序中的文件夹,但我找不到方法。
在 WPF 网络框架应用程序中,我可以使用 System.Windows.Forms 的 FolderBrowserDialog。
我已阅读此线程:OpenFileDialog on .NET Core
但对我来说,不清楚如何使用 mm8 用户的解决方案。
谢谢。
解决方案
默认情况下,Microsoft 没有在 FolderBrowserDialog 中提供文件夹选择器,这让我感到惊讶。您可以通过转到 Nuget 包管理器并输入以下命令来下载 Windows API 代码包:
Install-Package WindowsAPICodePack-Core
Install-Package WindowsAPICodePack-ExtendedLinguisticServices
Install-Package WindowsAPICodePack-Sensors
Install-Package WindowsAPICodePack-Shell
Install-Package WindowsAPICodePack-ShellExtensions
然后添加对Microsoft.WindowsAPICodePack.dll
和的引用Microsoft.WindowsAPICodePack.Shell.dll
。示例代码:
using Microsoft.WindowsAPICodePack.Dialogs;
var dlg = new CommonOpenFileDialog();
dlg.Title = "My Title";
dlg.IsFolderPicker = true;
dlg.InitialDirectory = currentDirectory;
dlg.AddToMostRecentlyUsedList = false;
dlg.AllowNonFileSystemItems = false;
dlg.DefaultDirectory = currentDirectory;
dlg.EnsureFileExists = true;
dlg.EnsurePathExists = true;
dlg.EnsureReadOnly = false;
dlg.EnsureValidNames = true;
dlg.Multiselect = false;
dlg.ShowPlacesList = true;
if (dlg.ShowDialog() == CommonFileDialogResult.Ok)
{
var folder = dlg.FileName;
// Do something with selected folder string
}
推荐阅读
- javascript - React 导入背景图片
- cardano - Daedalus 钱包如何识别有效的 cardano 支付地址?
- python - 用 numpy 在两个矩阵之间进行插值
- javascript - 在javascript中具有给定ID的组数组
- mysql - 如何使用对象数组从 JSON 列中查询数据
- python - 遇到内存限制时如何避免在python子进程模块中使用shell = True
- kubernetes - Kubernetes 入口 nginx 重定向到 https
- c++ - freeglut 库没有正确链接。有什么方法可以将链接器指向正确的位置?
- node.js - 如何创建可摇树的反应模块?package.json“出口”不工作
- ansible - 配置 ansible 任务以使 helm 部署对 Internet 连接问题具有容错能力的正确方法是什么?