Почему в XP файл диалога изменяет текущий каталог, лучше спросить у MS. во всяком случае, диалог открытия файла в XP имеет такое странное поведение, но в w7 или выше нет.
так что вы можете просто установить текущий каталог после сохранения пути, выбранного из SaveFileDialog, чтобы изменить текущий каталог.
Я выкладываю свой метод, где вы можете видеть, что выбранный путь сохраняется в настройках и сбрасывает текущий каталог
private void ShowSaveFileDialog(object sender, RoutedEventArgs e)
{
private const int xpVerMajorNumber = 5;
var saveFileDialog = new SaveFileDialog()
{
FileName = Settings.Default.ExcelFileName,
DefaultExt = "*.xlsx",
Filter = "Excel Workbook (.xlsx)|*.xlsx"
};
if (saveFileDialog.ShowDialog(this) == true)
Settings.Default.ExcelFileName = saveFileDialog.FileName;
if (Environment.OSVersion.Version.Major <= xpVerMajorNumber)
{
Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
}
}