是否可以同时具有两个或多个活动模态窗口?

时间:2019-04-30 06:50:04

标签: c# wpf

我正在处理我的应用程序中的反馈表。它还有一些窗口,这些窗口必须是模式窗口。问题在于,当打开模式窗口之一时,用户无法打开反馈表单。那么,有什么方法可以使反馈表单具有模态性,并可以与其他模态窗口一起打开和使用?

1 个答案:

答案 0 :(得分:1)

是的,只要您一次只有一个活动:

    public MainWindow()
    {
        InitializeComponent();

        this.Loaded += (s1, e1) =>
        {
            var window1 = new Window();
            window1.Owner = this;
            window1.Content = new TextBlock { Text = "This is modal window 1" };

            window1.Loaded += (s2, e2) =>
            {
                var window2 = new Window();
                window2.Owner = window1;
                window2.Content = new TextBlock { Text = "This is modal window 2" };
                window2.ShowDialog();
            };

            window1.ShowDialog();
        };
    }
}

这个特定的代码有点混乱,只是为了证明它可以完成。如果您想要一个更可靠的示例,请查看my article on implementing dialog boxes in MVVM

也可以将window2.Owner设置为this并同时获得两个活动的模态对话框,但这意味着您必须依靠alt-tab或程序控制在它们之间进行切换。几乎可以肯定,这不是您想要的行为,但是在极少数情况下,您可能想做这种事情。