首页 > 解决方案 > 有没有办法在 WPF Core 中使用文件夹选择器(FolderBrowserDialog)?

问题描述

我想要一个对话框来选择 WPF Core 应用程序中的文件夹,但我找不到方法。

在 WPF 网络框架应用程序中,我可以使用 System.Windows.Forms 的 FolderBrowserDialog。

我已阅读此线程:OpenFileDialog on .NET Core

但对我来说,不清楚如何使用 mm8 用户的解决方案。

谢谢。

标签: wpf.net-core

解决方案


默认情况下,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
}

推荐阅读