当前位置: 首页 > article >正文

使用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

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;
        }
    }
}

调用该工具类:

if (DialogUtil.GetDir("选择文件夹", out string dir))
{
	//to do
}

http://www.kler.cn/a/386853.html

相关文章:

  • 测试工程师简历「精选篇」
  • C++ 的协程
  • 阿里巴巴通义灵码推出Lingma SWE-GPT:开源模型的性能新标杆
  • NoSQL数据库与关系型数据库的主要区别
  • 灰狼优化算法
  • STM32单片机WIFI语音识别智能衣柜除湿消毒照明
  • 「Mac畅玩鸿蒙与硬件31」UI互动应用篇8 - 自定义评分星级组件
  • Flink on YARN是如何确定TaskManager个数的
  • [spark面试]spark与mapreduce的区别---在DAG方面
  • CI_CD
  • LabVIEW气体检测系统
  • 【Android】组件化开发入门
  • java-web-苍穹外卖-day2-上:测试阶段区分+开发工具区分
  • 在CentOS 7上安装Alist
  • 【elkb】kibana后台删除索引
  • Android OpenGL ES详解——纹理:纹理过滤GL_NEAREST和GL_LINEAR的区别
  • jmeter常用配置元件介绍总结之函数助手
  • Virtual Box 安装 Deepin 系统
  • Ubuntu 修改时区 同步时间
  • lua入门教程:lua函数
  • 【嵌入式开发——Linux操作系统】8进程间通信IPC和内核同步
  • C# 中的 IntPtr
  • C++设计模式结构型模式———代理模式
  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(3)
  • Unity插件NodeCanvas之行为树的详细教程
  • python--案例练习:加,幂指数