我想使用文件夹浏览对话框的WPF,但似乎没有这样一个必要的类为WPF。
有些人建议使用System.Windows.Forms.FolderBrowserDialog,但这是一个非常糟糕的对话框。
我试过Ookii.Dialogs.Wpf.VistaFolderBrowserDialog
Ookii.Dialogs.Wpf.VistaFolderBrowserDialog dlg = new VistaFolderBrowserDialog();
dlg.SelectedPath = path;
dlg.ShowDialog();但是,当对话框打开时,设置SelectedPath并不会设置开始文件夹,这对于我的程序是必不可少的。
如何让VistaFolderBrowserDialog在正确的文件夹中打开?
发布于 2014-02-03 22:59:36
最后我使用了Codeplex项目WPF本机文件夹浏览器
WPFFolderBrowser.WPFFolderBrowserDialog dlg = new WPFFolderBrowserDialog();
dlg.InitialDirectory = path;
bool? pathWasSelected = dlg.ShowDialog();
string selectedPath = null;
if(pathWasSelected == true)
selectedPath = dlg.FileName;发布于 2014-02-03 22:08:54
我不能复制这个。但也许这里有些混乱。如果我这么做:
var dialog = new VistaFolderBrowserDialog();
dialog.SelectedPath = @"C:\Data";
dialog.ShowDialog();它将在"C:“中启动,已经选择了”数据“文件夹。当按OK时,结果是"C:\Data“。但是,包括后面的反斜杠:
var dialog = new VistaFolderBrowserDialog();
dialog.SelectedPath = @"C:\Data\";
dialog.ShowDialog();将启动此文件夹中的对话框,默认情况下不选择任何内容。当按"OK“时,结果再次是"C:\Data”。
发布于 2017-12-12 08:12:03
WpfFolderBrowser.WpfFolderBrowserDialog --这是最适合我的!
不过,我做了一个修复:函数ErrorHelper.HResultFromWin32(int)在按下“选择文件夹”或“取消”(在.NET 4.5.1中运行)时生成System.OverflowException。
为了解决这个问题,我将有问题的代码放在未检查的块中:
unchecked
{
win32ErrorCode =
(int)((win32ErrorCode & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000);
}https://stackoverflow.com/questions/21538391
复制相似问题