我正在使用FolderBrowserDialog从Windows打开一个对话框,以便用户可以选择一个自定义文件夹。不幸的是,FolderBrowserDialog有一些arhaic设计,使用户无法选择粘贴路径。目前看来与此类似:

我想要的是一个粘贴路径的选项:

这是我目前的代码:
using (var dialog = new System.Windows.Forms.FolderBrowserDialog()) {
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
dialog.SelectedPath = Global.DestinationFolder;
System.Windows.Forms.DialogResult result = dialog.ShowDialog();
}发布于 2020-08-07 14:10:11
您不能像这样自定义来自Windows的FolderBrowserDialog。曾经有一个包含WindowsAPICodePack的CommonOpenFileDialog,它有一个文件夹选择选项,可以准确地显示您想要的对话框,但是它已经不可用了。您仍然可以通过非官方的WindowsAPICodePack-Shell NuGet包使用它。
var folderBrowser = new CommonOpenFileDialog { IsFolderPicker = true }另一种选择是迁移到.NET核心>= 3.0,在那里,Windows 已现代化中的FolderBrowserDialog。您需要将Windows窗体添加到WPF项目中,才能访问它。
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>最后,如果没有其他选择,则可以使用本机代码创建IFileOpenDialog,并将其选项设置为只选择文件夹。您可以找到有关它的一般信息,这里。
https://stackoverflow.com/questions/63303215
复制相似问题