WPF如何使用 System.Windows.Forms.FolderBrowserDialog

WPF如何使用 System.Windows.Forms.FolderBrowserDialog


在WPF中,如果你想使用System.Windows.Forms.FolderBrowserDialog来选择文件夹,你需要添加对WinForms的引用,因为FolderBrowserDialog是Windows Forms的一部分,不是WPF的一部分。

下面是如何在WPF应用程序中使用FolderBrowserDialog的步骤:

  1. 添加引用:
    在你的项目中,添加对System.Windows.Forms的引用。在Visual Studio中,可以通过解决方案资源管理器的“引用”部分来添加。

  2. 添加WinForms的命名空间:
    在C#代码文件的顶部,添加对System.Windows.Forms的命名空间引用。

    using System.Windows.Forms;
    
  3. 调用FolderBrowserDialog
    在你的WPF窗口代码中,你可以创建和使用FolderBrowserDialog的实例。

    private void OpenFolderBrowserDialog()
    {
        // 需要添加对System.Windows.Forms的引用
        var folderBrowserDialog = new FolderBrowserDialog();
        DialogResult result = folderBrowserDialog.ShowDialog();
    
        if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
        {
            string selectedPath = folderBrowserDialog.SelectedPath;
            // 使用选定的路径做你需要的事
        }
    
     folderBrowserDialog.Dispose();
    }
    
  4. 设置FolderBrowserDialog的属性:
    根据需要,你可以设置FolderBrowserDialog的属性,比如Description来显示对话框上方的描述文字,或者SelectedPath来设置或获取选定的路径。

  5. 调用对话框:
    在你的事件处理器或命令中调用OpenFolderBrowserDialog方法,这会打开文件夹浏览对话框。

请注意,由于FolderBrowserDialog是Windows Forms的组件,使用它需要WinForms上下文。当在WPF中使用时,ShowDialog方法需要一个WinForms窗口句柄。如果你直接调用它而不传递窗口句柄,它将默认使用当前激活的窗口作为它的所有者。

在.NET Core或.NET 5/6/7+的WPF应用程序中,可能还需要添加对System.Windows.Forms.Primitives的引用,因为某些Windows Forms控件被移到了这个程序集中。可以通过项目文件中的PackageReference来添加。

如果你在.NET Core或.NET 5/6/7+应用程序中遇到兼容性问题,考虑使用WPF自带的Microsoft.Win32.OpenFileDialogSystem.Windows.Controls.OpenFileDialog,它们有类似的功能并且专为WPF设计。虽然它们默认用于打开文件,但你也可以通过一些技巧使用它们来选择文件夹。

相关推荐

  1. WPF如何使用 System.Windows.Forms.FolderBrowserDialog

    2024-04-05 11:28:02       34 阅读
  2. wpf 使用 StringFormat

    2024-04-05 11:28:02       46 阅读
  3. WPF Command 的使用

    2024-04-05 11:28:02       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 11:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 11:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 11:28:02       82 阅读
  4. Python语言-面向对象

    2024-04-05 11:28:02       91 阅读

热门阅读

  1. 找出字符串中所有偶数的个数

    2024-04-05 11:28:02       36 阅读
  2. 单例模式的多种写法

    2024-04-05 11:28:02       39 阅读
  3. 设计模式:单例模式六种实现

    2024-04-05 11:28:02       36 阅读
  4. 单例模式详解

    2024-04-05 11:28:02       32 阅读
  5. Visual Studio Code(VS Code)安装教程

    2024-04-05 11:28:02       29 阅读
  6. Vue 组件的 mixin 函数,用于屏幕适配

    2024-04-05 11:28:02       38 阅读
  7. 0基础如何进入IT行业

    2024-04-05 11:28:02       33 阅读
  8. C/C++中的static关键字用法总结

    2024-04-05 11:28:02       39 阅读
  9. 梯度反向传播过程是如何处理repeat函数的

    2024-04-05 11:28:02       39 阅读
  10. linux小工具杂记

    2024-04-05 11:28:02       35 阅读
  11. 算法思想 - 贪心算法

    2024-04-05 11:28:02       38 阅读
  12. vue3从精通到入门12:vue3的生命周期和组件

    2024-04-05 11:28:02       40 阅读
  13. 英语写作中“概念”concept 、notion、idea的用法

    2024-04-05 11:28:02       75 阅读