for Why in XP the filedialog change the current directory , it's better to ask MS. anyway the open file dialog in XP has this strange behavior ,but in w7 or higher not.
so you can simply set the current directory after you saved the path selected from SaveFileDialog taht it change the current directory.
I post my method where you can see that the path chosed is saved to settings and reset the current directory
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);
}
}