簡體   English   中英

WPF 文件夾瀏覽器對話框,顯示外部設備並可導航到用戶給定的文件夾路徑

[英]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;

這會生成一個文件夾瀏覽器對話框,如下所示:

Shell 文件夾瀏覽器對話框

此對話框列出了外部設備,但用戶不能只輸入“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:

System.Windows.Forms 文件夾瀏覽器對話框

用戶可以在其中輸入文件夾路徑,但此對話框不顯示外部設備,如連接的智能手機。

有沒有辦法兩全其美?

你可以試試Ookii.Dialogs Ookii.Dialogs.VistaFolderBrowserDialog 應該做你想做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM