如何在 FolderBrowserDialog 中设置只读属性
Posted
技术标签:
【中文标题】如何在 FolderBrowserDialog 中设置只读属性【英文标题】:How to set read only properties in FolderBrowserDialog 【发布时间】:2020-09-05 09:54:45 【问题描述】:我在我的应用程序中使用自定义 WPF FolderBrowserDialog 将数据导出到特定文件夹位置。它具有只读属性 SelectedPath、RootPath 以及其他可用的属性和依赖项属性。
现在我想在 RootFolder 和 SelectedPath 中分配我自己的路径。由于它是只读属性,因此我无法在其中分配任何路径。它还具有与 FolderBrowserDialog.RootFolderProperty.SetVale(dependencyproperty,object); 相同属性的依赖属性。是否可以使用 C# 而不是 xaml 在依赖项属性中分配值?
如何设置默认路径以始终使用特定选定文件夹打开(D:\Export)FolderBrowserDialog,并且我还想实现逻辑以记住最后选择的文件夹。请帮我解决这个问题。
【问题讨论】:
您是否尝试在打开之前致电SetCurrentDirectory
? docs.microsoft.com/en-us/dotnet/api/…
你应该可以修改SelectedPath
。
@Moo-Juice - 该 FolderBrowserDialog 类中没有这样的属性。
@Suryakavitha - var dlg = new System.Windows.Forms.FolderBrowserDialog() SelectedPath = @"D:\Export" ;
不适合你吗?它已经为我工作了很多年。
Btw FolderBrowserDialog 不是 WPF 的一部分,您确定不想标记 WinForms 吗?
【参考方案1】:
我也有一个 WPF 应用程序并使用
System.Windows.Forms.FolderBrowserDialog
类。它确实具有可编辑的SelectedPath
和RootFolder
。
如果你有一个完整的路径并将SelectedPath
设置为它,那么从突出显示的角度来看,这就是对话框默认的位置。对话框将从屏幕顶部开始,而不是在特定的缩进级别。但是如果你向下滚动,你会看到给定的路径突出显示。当您进入每个级别时,您会看到每个后续级别都预先突出显示,直到最后一个级别。
如果从 FolderBrowserDialog
的变量中,执行 (F12) 或右键单击“转到定义”,它将带您到该声明。您应该将这两个属性都视为
public get; set;
现在对于RootFolder
,您也可以更改它,但这是基于您将在声明中看到的Environment.SpecialFolder
中有效值的ENUM 属性。现在,(F12) 或在RootFolder
上右键单击“转到定义”,它将带您进入环境特殊文件夹的枚举列表。
现在,如果您想劫持其中一个不常用的文件夹并将其分配到其他位置,那将是您采取的新步骤。
【讨论】:
以上是关于如何在 FolderBrowserDialog 中设置只读属性的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 WPF Net 6 应用程序中使用 FolderBrowserDialog?
使用 OpenFileDialog 作为目录,而不是 FolderBrowserDialog
folderbrowserdialog1 在 Visual Studio 2015 Enterprise Windows 10 中不起作用