使用Window自定义MessageBox

时间:2014-02-04 13:14:23

标签: wpf custom-controls messagebox showdialog

关于以下代码。

如果我使用内置的MessageBox,那么在显示下一个MessageBox之前必须先关闭它。

如何使用Window实现此目的,以便创建自定义消息框?我尝试使用ShowDialog方法,但是虽然这确实创建了Modal窗口,但它仍然会在级联的同时显示它们。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        Loaded += new RoutedEventHandler(MainWindow_Loaded);
    }

    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        for (int i = 0; i < 3; ++i)
        {
            Dispatcher.BeginInvoke(new Action(() => ShowDialog2()));
        }
    }

    void ShowDialog2()
    {
        //MessageBox.Show("A message");

        Window w = new Window() { Width = 200, Height = 200, Content = "SomeText" };
        w.ShowDialog();
    }
}

1 个答案:

答案 0 :(得分:1)

使用ShowDialog打开第一个窗口实例,并使用Show方法打开窗口的后续实例。

显示打开非模态窗口,而ShowDialog打开模态窗口。