【问题标题】:Change design of FolderBrowserDialog更改 FolderBrowserDialog 的设计
【发布时间】:2020-08-07 13:50:49
【问题描述】:

我正在使用 Windows 窗体中的FolderBrowserDialog 打开一个对话框,以便用户可以选择自定义文件夹。不幸的是,FolderBrowserDialog 有一些古老的设计,让用户无法选择粘贴路径。目前它看起来类似于这样:

我正在寻找可以粘贴路径的选项:

这是我当前的代码:

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

【问题讨论】:

标签: c# wpf


【解决方案1】:

您不能像这样从 Windows 窗体自定义 FolderBrowserDialog。 曾经有包含CommonOpenFileDialogWindowsAPICodePack,它有一个文件夹选择选项,可以准确显示您想要的对话框,但它不再可用。您仍然可以通过非官方 WindowsAPICodePack-Shell NuGet package 使用它。

var folderBrowser = new CommonOpenFileDialog { IsFolderPicker = true }

另一种选择是迁移到 .NET Core >= 3.0,其中 Windows 窗体中的 FolderBrowserDialogwas modernized。您需要将 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 并将其选项设置为仅选择文件夹。您可以在here找到有关它的一般信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多