WPF Open / Select Folder Dialog (OpenFolderDialog в .NET 8)
Используйте новый `OpenFolderDialog` из .NET 8 в WPF, чтобы пользователи могли открывать и выбирать одну или несколько папок. Заменяет старый костыль с FolderBrowserDialog из WinForms.
.NET 8 добавляет в Windows Presentation Foundation (WPF) новый OpenFolderDialog. Это позволяет пользователям приложения просматривать и выбирать одну или несколько папок.
Использовать его просто: создайте новый OpenFolderDialog, задайте Title и InitialDirectory. Если нужно разрешить выбор нескольких папок, выставьте Multiselect в true. После этого обычный вызов ShowDialog() покажет ваш диалог.
var dialog = new OpenFolderDialog()
{
Title = "Foo",
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal),
Multiselect = true
};
string folderName = "";
if (dialog.ShowDialog() == true)
{
folderName = dialog.FolderName;
}
Как и в любом диалоге, если пользователь нажмёт кнопку Select Folder, ShowDialog() вернёт true; в противном случае — false.
Диалог открытия папки использует для навигации и выбора папок Проводник Windows, как и OpenFileDialog. Поэтому в зависимости от ОС диалог будет выглядеть по-разному. В Windows 11 он будет выглядеть примерно так:
Для получения результата у вас есть несколько свойств. При одиночном выборе:
dialog.FolderName -> "C:\Users\test\OneDrive\Documents\Fiddler2"
dialog.SafeFolderName -> "Fiddler2"
При множественном выборе можно использовать:
dialog.FolderNames -> [ "C:\Users\test\OneDrive\Documents\Fiddler2", "C:\Users\mariu\OneDrive\Documents\Graphics" ]
dialog.SafeFolderNames -> [ "Fiddler2", "Graphics" ] 
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.