代码之家  ›  专栏  ›  技术社区  ›  Álvaro García

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

  •  0
  • Álvaro García  · 技术社区  · 6 年前

    在wpfnetframework应用程序中,我可以使用系统.Windows.Forms.

    我读过这个帖子: OpenFileDialog on .NET Core

    谢谢。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Max Voisard    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
    

    然后添加引用 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
    }