閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

WPFにもOpenFolderDialogが追加されていた

C#書いていた頃、フォルダ選択ダイアログといえばSystem.Windows.Forms.FolderBrowserDialogでした。

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)
    {
        // 
    }
}

OpenFolderDialogのキャプチャ

うーんお手軽。ちょっと目を離している間に、世の中はどんどん便利になっていきますね。