我正在处理我的应用程序中的反馈表。它还有一些窗口,这些窗口必须是模式窗口。问题在于,当打开模式窗口之一时,用户无法打开反馈表单。那么,有什么方法可以使反馈表单具有模态性,并可以与其他模态窗口一起打开和使用?
答案 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或程序控制在它们之间进行切换。几乎可以肯定,这不是您想要的行为,但是在极少数情况下,您可能想做这种事情。