我需要显示一个文件夹对话框,以便用户可以在我的应用程序运行之前选择一个路径。我有一切正常,但我似乎无法将错误MessageBox保留在前台。如果用户选择了错误的路径,则会弹出一个消息框,但它将保留在桌面上任何打开的窗口后面的背景中。
我是WPF的新手,使用此应用程序的winforms版本我可以指定fdb.ShowDialog(this),它会将错误消息框保留在前台。但是对于WPF,消息框窗口始终位于所有其他打开的窗口之后。
关于如何解决这个问题的任何想法?谢谢。
while (!found)
{
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
if ((File.Exists(Path.Combine(fbd.SelectedPath, "user.exe"))))
return fbd.SelectedPath;
else
System.Windows.Forms.MessageBox.Show("Cannot find user.exe in the selected path! Please try again.", "File Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
}
}
答案 0 :(得分:1)
将代码移至Window_Loaded
事件,而不是从构造函数中调用它 -
<Window Loaded="Window_Loaded"/>
代码背后 -
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// Your code here
}
因为,您的窗口尚未加载,因为代码执行尚未通过构造函数,同时会弹出错误消息。因此,一旦窗口加载,它将通过消息框。