昔C#書いていた頃、フォルダ選択ダイアログといえばSystem.Windows.Forms.FolderBrowserDialogでした。
これが結構使いにくいので、Windows Code API Packなどをわざわざ入れて、普通のファイルオープンダイアログみたいなUIでフォルダを選べるようにしたりしていたのですが、最近(.NET 5!!)のWinFormsだと自動で今風なUIになっていたらしいです。昔風のUIにしたければAutoUpgradeEnabledプロパティをfalseにすると上図のようになるみたいですね。
Windows フォーム .NET 5 の新機能 - Windows Forms .NET | Microsoft Learn
なので、WPFでフォルダ選択したければWindows Code API Packを入れずにWinForms有効にしてFolderBrowserDialogを使えばいいのか…と思いきや、.NET 8ではWPFにも同等の画面を持ったOpenFolderDialogが実装されていたようです。
WPF for .NET 8 の新着情報 - WPF .NET | Microsoft Learn
private void Button_Click(object sender, RoutedEventArgs e) { var dlg = new Microsoft.Win32.OpenFolderDialog { Title = "テスト" }; if (dlg.ShowDialog() == true) { // } }
うーんお手軽。ちょっと目を離している間に、世の中はどんどん便利になっていきますね。