[英]WPF folder browser dialog that shows external devices and can navigate to user-given folder path
我有一個 WPF 應用程序,用戶必須在其中選擇一個文件夾進行操作。 我通過在他單擊按鈕時打開文件夾瀏覽器對話框來實現這一點。
我希望對話框既能列出外部設備,如連接的智能手機,也有一個文本框,用戶可以在其中輸入文件夾的路徑,對話框將能夠導航到它,就像常規的 Windows 對話框一樣。
目前我有:
FolderItem ShellBrowseForFolder()
{
Folder folder = shell.BrowseForFolder(Hwnd, "", 0, 0);
if (folder != null)
{
FolderItem fi = (folder as Folder3).Self;
return fi;
}
return null;
}
我通過以下方式調用:
TargetFolderPath = ShellBrowseForFolder()?.Path;
這會生成一個文件夾瀏覽器對話框,如下所示:
此對話框列出了外部設備,但用戶不能只輸入“C:\\some dir”並讓對話框導航到它。
我還嘗試為IShellDispatch.BrowseForFolder
方法提供選項(根據這些列出的變體,在閱讀MSDN 文章后),如下所示:
Folder folder = shell.BrowseForFolder(Hwnd, "", 4, 0);
和
Folder folder = shell.BrowseForFolder(Hwnd, "", 0x00000004, 0);
但我沒有注意到任何變化。
我的另一個對話框是:
readonly System.Windows.Forms.FolderBrowserDialog folderBrowser = new();
if (folderBrowser.ShowDialog() == DialogResult.OK)
folderPath = folderBrowser.SelectedPath;
這會產生dis:
用戶可以在其中輸入文件夾路徑,但此對話框不顯示外部設備,如連接的智能手機。
有沒有辦法兩全其美?
你可以試試Ookii.Dialogs 。 Ookii.Dialogs.VistaFolderBrowserDialog 應該做你想做的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.