我是初学者,并且对XAML有一些困难。 我有一个主视图A,它有一个用于打开弹出窗口B的按钮。当发生这种情况时,窗口A应该仍然可见并打开,但是已禁用。我在代码背后做了这个(也许不是最干净的方式,但我知道的唯一方法)。我用于此的代码如下:
//Code behind from view A
private void X-Button_Click(object sender, RoutedEventArgs e)
{
var BWindow = new BView();
BWindow.Show();
this.IsEnabled = false;
}
我希望在关闭窗口B后再次启用窗口A,但我似乎无法完成这项工作。非常感谢任何帮助。
答案 0 :(得分:0)
你可以通过以下方式完成。
您在窗口的Closed事件上注册,当它关闭时,您取消注册该事件,并重新启用此窗体。
private void Button_Click(object sender, RoutedEventArgs e)
{
Window BWindow = new BWindow();
BWindow.Show();
BWindow.Closed += BWindow_Closed;
this.IsEnabled = false;
}
void BWindow_Closed(object sender, EventArgs e)
{
Window win = sender as Window;
if (win != null)
{
win.Closed -= BWindow_Closed;
}
this.IsEnabled = true;
}
答案 1 :(得分:0)
我假设您正在寻找模态窗口。请参阅此处提出的类似问题:How do make modal dialog in WPF?
解决方案是使用ShowDialog
类中的Window
方法。见这里参考:
http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx
当您从现有窗口A打开新窗口B时,模态窗口是概念。当B打开时,A被禁用且无法使用。窗口A仅在B关闭时才会激活。