WPF- MessageBox是最顶层的

时间:2015-05-11 15:54:57

标签: c# wpf

我有一个WPF应用程序,我需要MessageBox始终是最顶层的。 在胜利形式我会做那样的事情:

System.Windows.Forms.MessageBox.Show(new Form() { TopMost = true }, "sure you wanna save?", "confirm", MessageBoxButtons.YesNo)

但我如何在WPF中执行此操作?

我看到了几个不同的答案,但不是它们对我有用,例如:

MessageBox.Show(Application.Current.MainWindow, "Im always on top - of the main window");

我的mainWindo为空。 在我的应用程序中,MessageBox从不同的页面打开 - 而不是窗口

我知道如何以最简单的方式做到这一点吗?

2 个答案:

答案 0 :(得分:2)

您必须创建自己的Window并将其Topmost值设置为true。

MyWindow dialog = new MyWindow();
dialog.Topmost = true;
dialog.Show();

答案 1 :(得分:1)

使用MessageBoxOptions.DefaultDesktopOnly,它将MessageBox保持在窗口顶部。

MessageBox.Show("You entered an incorrect value. Try once more.", "Wrong input", MessageBoxButton.OK, MessageBoxImage.Exclamation,MessageBoxResult.OK,MessageBoxOptions.DefaultDesktopOnly);