前提
・nugetで「Microsoft-WindowsAPICodePack-Shell」をインストール済み
※ダウンロード数の多いものをインストールしておく
ファイルを選択するダイアログ


(省略)
using Microsoft.WindowsAPICodePack.Dialogs;
(省略)
private void Bottun1_Click(object sender, RoutedEventArgs e)
{
// ダイアログのインスタンスを生成
CommonOpenFileDialog dialog = new CommonOpenFileDialog()
{
Title ="ファイルを選択してください",
DefaultFileName = "default.txt",
};
// ダイアログを表示する
var ret = dialog.ShowDialog();
if (ret == CommonFileDialogResult.Ok)
{
//選択されたファイル名をテキストボックスに設定する
filePathTextBox.Text = dialog.FileName;
}
}
フォルダを選択するダイアログ
「ファイルを選択するダイアログ」のプログラムに「IsFolderPicker = true」を追記する。


(省略)
using Microsoft.WindowsAPICodePack.Dialogs;
(省略)
private void Bottun1_Click(object sender, RoutedEventArgs e)
{
// ダイアログのインスタンスを生成
CommonOpenFileDialog dialog = new CommonOpenFileDialog()
{
Title = "フォルダを選択してください",
IsFolderPicker = true // フォルダ選択モードにする
};
// ダイアログを表示する
var ret = dialog.ShowDialog();
if (ret == CommonFileDialogResult.Ok)
{
//選択されたフォルダ名をテキストボックスに設定する
filePathTextBox.Text = dialog.FileName;
}
}
実行ボタン押下時等に実施する入力チェック
//nullチェック
if (String.IsNullOrEmpty(filePathTextBox.Text))
{
MessageBox.Show("出力フォルダを選択してください。");
return;
}