我有一个其中有一个窗口(例如W1)的应用程序,我希望它在打开时不阻止应用程序的处理。我已经使用W1.show()
实现了。从该窗口打开另一个窗口(W2)。
我希望它的行为类似于模式,以便它禁用父窗口W1,但不能禁用其余的应用程序。
简而言之:
W2打开时
应用程序继续运行
只有W1被禁用
我试过了
W1.IsEnabled = false;
W2.Show();
W1.IsEnabled = true;
它在打开时将焦点移至W2,其余应用程序也继续运行,但我仍然可以使用W1,这是不正确的
如果我用
W2.ShowDialog()
那么整个应用程序将被阻止。是否有某种方法可以通过它禁用父窗口(/所有者)?
最佳答案
这应该可以回答您的问题:
private void Button_Click(object sender, RoutedEventArgs e)
{
W2.Owner = W1;
W1.IsHitTestVisible = false;
W2.Closing += W2_Closing;
W2.Show();
}
private void W2_Closing(object sender, CancelEventArgs e)
{
W1.IsHitTestVisible = true;
}