Диалог выбора папки для WPF с полем ввода пути - PullRequest
1 голос
/ 08 декабря 2010

Как известно, WPF по-прежнему не предоставляет диалоговое окно выбора папки (если только в WPF4 нет пропущенного мной). Тем временем я использую System.Windows.Forms.FolderBrowserDialog.

К сожалению, в этом диалоговом окне есть только дерево папок, ОК, Отмена и дополнительная кнопка «Создать новую папку». Юзабилити плохая. Особенно это ужасно при попытке выбрать сетевую папку. Единственный способ выбрать папку - это расширить базу «Сеть», которая во многих корпоративных системах / сетях начнет долгую задержку и в конечном итоге приведет к недопустимо длинному списку.

Я хотел бы, чтобы поле ввода текста позволяло пользователю запускать навигацию в определенном месте, например на конкретном компьютере / папке, например, в диалоговом окне просмотра файлов.

Кто-нибудь делал такую ​​вещь? Это способ расширения стандартного System.Windows.Forms.FolderBrowserDialog или мне придется создавать свой собственный?

Спасибо.

Ответы [ 3 ]

1 голос
/ 17 декабря 2010

Vista Bridge предоставляет управляемые оболочки для новых диалоговых окон Vista с резервной поддержкой при работе на более старых ОС. Эти файловые диалоги предпочтительнее стандартных WPF или WinForms.

Windows API Code Pack предоставляет управляемые оболочки для функций Windows 7.

0 голосов
/ 17 декабря 2010

Вы переносите собственный код и используете функцию SHBrowseForFolder: http://msdn.microsoft.com/en-us/library/bb762115(v=vs.85).aspx

Или, начиная с Vista, вы можете создать COM-объект с идентификатором "CLSID_FileOpenDialog" (тоже собственный код): http://msdn.microsoft.com/en-us/library/bb776913(VS.85).aspx

Оба предоставляют область ввода текста, в которой можно вводить пути UNC.

0 голосов
/ 08 декабря 2010

Я думаю, вы должны создать свой собственный, без диалогового окна папки по умолчанию, реализовать что-то вроде этого.Если я не ошибаюсь, java тоже не допускает такой возможности.

Обычно я создаю кнопку «Открыть папку» рядом с текстовым полем, где путь можно записать вручную (когда кнопка диалога папки закрытас помощью кнопки «ОК» просто заполните это текстовое поле), это самый простой способ.

Ваш тип диалога должен быть создан, с хорошей стороны вы можете по крайней мере продать его, потому что он выглядит красиво и полезно.Или, может быть, вы можете найти что-то подобное в Интернете (кстати, предыдущий платеж).

Другое дело, диалог всех папок очень медленный, по крайней мере, в Windows XP, возможно, «невозможно» уменьшить эти задержки,вам следует выполнить некоторые поиски, чтобы избежать этой проблемы (единственное, о чем я могу думать, - это многопоточный диалог, который собирает информацию и дает возможность начать навигацию по дереву каталогов).

Надеюсь, это будет полезно

РЕДАКТИРОВАТЬ: Может быть, это имеет какую-то полезность, http://www.ssware.com/fldrview.htm выглядит круто, но не имеет всех функций, которые вы хотите, я думаю, что он не существует, как вы надеетесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...