Я столкнулся с проблемой с Microsoft.Win32.SaveFileDialog
в нашем Wpf-приложении.
Если пользователь вводит огромный путь к файлу, превышающий допустимый максимум (я думаю, что это 255 символов?), В пределах SaveFileDialog
, то он начинает становиться непригодным (подробности об этом в примере кода).
Так что в качестве обходного пути я хочу закрыть диалог и заставить их снова ввести путь к файлу. Однако проблема в том, что SaveFileDialog
не имеет подпрограммы Close()
или чего-либо еще, что я вижу, чтобы закрыть ее. Как я могу закрыть диалог программно?
// error only seems to occur if a filter is specified.
var dialog = new Microsoft.Win32.SaveFileDialog
{
Filter = "My juicy file (*.mjf) | *.mjf"
};
try
{
dialog.ShowDialog();
}
catch (System.IO.PathTooLongException error) // handle
{
/*
* if I handle this exception (by displaying a message to the user)
* the dialog will remain open, but if the user attempts to use it
* and enter another filename a mixture of the following exceptions
* are raised:
*
* AccessViolationException
* FatalExecutionEngineError
* ExecutionEngineException
*/
MessageBox.Show(error.Message);
}
EDIT
Спасибо за ваши ответы / комментарии. Я только что проверил это на моем Windows 7, и он ведет себя как ожидалось, так что это может быть проблема только в XP.