使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径

在进行WPF开发时,System.Windows.Forms.FolderBrowserDialog的选择文件夹功能不支持输入路径:

希望能够获得下图所示的选择文件夹功能:

于是,通过NuGet中安装Ookii.Dialogs.Wpf包,并创建一个简单的工具类:

https://github.com/ookii-dialogs/ookii-dialogs-wpf/tree/master/sample/Ookii.Dialogs.Wpf.Sample

csharp 复制代码
using Ookii.Dialogs.Wpf;
using System.Windows.Forms;

namespace Utils
{
    public class DialogUtil
    {
        public static bool GetDir(string description, out string dir, string rootDir = null)
        {
            dir = null;
            if (VistaFolderBrowserDialog.IsVistaFolderDialogSupported)
            {
                VistaFolderBrowserDialog val = new VistaFolderBrowserDialog();
                val.Description = description;

                val.SelectedPath = rootDir;
                val.Multiselect = (false);
                if (val.ShowDialog() == true)
                {
                    dir = val.SelectedPath;
                    return true;
                }
            }
            else
            {
                FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
                folderBrowserDialog.Description = description;
                if (folderBrowserDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                    return false;
                dir = folderBrowserDialog.SelectedPath;
                return true;
            }
            return false;
        }
    }
}

调用该工具类:

csharp 复制代码
if (DialogUtil.GetDir("选择文件夹", out string dir))
{
	//to do
}
相关推荐
初九之潜龙勿用3 小时前
C# 操作Word模拟解析HTML标记之背景色
开发语言·c#·word·.net·office
时光追逐者4 小时前
使用 MWGA 帮助 7 万行 Winforms 程序快速迁移到 WEB 前端
前端·c#·.net
老骥伏枥~5 小时前
【C# 入门】程序结构与 Main 方法
开发语言·c#
全栈师5 小时前
java和C#的基本语法区别
java·开发语言·c#
钰fly5 小时前
联合编程(加载单个工具,ini读写,图片读写,setting存储)
c#
FuckPatience7 小时前
C# 对象初始化器对属性赋值vs构造函数里对属性赋值
c#
浩浩测试一下8 小时前
洪水猛兽攻击 Ddos Dos cc Drdos floods区别
安全·web安全·网络安全·系统安全·wpf·可信计算技术·安全架构
m0_748233179 小时前
C语言vsC#:核心差异全解析
c语言·开发语言·c#
MyBFuture9 小时前
C# 关于联合编程基础
开发语言·c#·visual studio·vision pro
Sunsets_Red9 小时前
单调队列优化dp
c语言·c++·算法·c#·信息学竞赛