有什么方法可以在WPF Core中使用文件夹选择器(FolderBrowserDialog)?

时间:2019-10-26 09:36:53

标签: wpf .net-core

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

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:2)

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.dllMicrosoft.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
}