有没有办法在 WPF Core 中使用文件夹选择器(FolderBrowserDialog)?

Álv*_*cía 3 wpf .net-core

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

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

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

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

谢谢。

Max*_*ard 6

默认情况下,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
Run Code Online (Sandbox Code Playgroud)

然后添加对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
}
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,我只引入了 WindowsAPICodePack-Core 和 Microsoft.WindowsAPICodePack.Shell,它工作得很好。非常感谢。 (2认同)