WPF 检测 Window 关闭事件并与按钮事件耦合
WPF Detecting Window Close Event and coupling with a button event
两天来,我尝试了各种方法来制作它,以便在单击 loadButton 时,它会打开一个辅助 window 并禁用 loadButton;然后,当辅助 window 关闭时,将重新启用 loadButton。虽然,显然我所有的尝试都没有成功。
我一直在阅读有关使用 isClosing 事件的信息,但我还没有想出如何正确地实现它。所以我决定走这条路。
private void loadButton_Click(object sender, RoutedEventArgs e)
{
var richWindow = RichTextWindow.GetWindow(new RichTextWindow());
if (richWindow.IsActive != true)
{
loadButton.IsEnabled = false;
richWindow.Show();
}
else
{
loadButton.IsEnabled = true;
}
}
这里的问题是,执行了前半部分。单击 loadButton 后,它会禁用。但是,在关闭新 Window 时,loadButton 仍处于禁用状态。
任何人都可以指出我需要去哪里的正确方向吗?
richWindow.Loaded +=
{
loadedButton.IsEnabled = false;
};
richWindow.Closing +=
{
loadedButton.IsEnabled = true;
}
我想你想要的是这样的:
private void loadButton_Click(object sender, RoutedEventArgs e)
{
var richWindow = RichTextWindow.GetWindow(new RichTextWindow());
richWindow.Closed += (s, e) => loadButton.IsEnabled = true;
loadButton.IsEnabled = false;
richWindow.Show();
}
基本上,在打开 window 之前禁用该按钮。然后,监听 window 关闭并再次启用按钮。
两天来,我尝试了各种方法来制作它,以便在单击 loadButton 时,它会打开一个辅助 window 并禁用 loadButton;然后,当辅助 window 关闭时,将重新启用 loadButton。虽然,显然我所有的尝试都没有成功。
我一直在阅读有关使用 isClosing 事件的信息,但我还没有想出如何正确地实现它。所以我决定走这条路。
private void loadButton_Click(object sender, RoutedEventArgs e)
{
var richWindow = RichTextWindow.GetWindow(new RichTextWindow());
if (richWindow.IsActive != true)
{
loadButton.IsEnabled = false;
richWindow.Show();
}
else
{
loadButton.IsEnabled = true;
}
}
这里的问题是,执行了前半部分。单击 loadButton 后,它会禁用。但是,在关闭新 Window 时,loadButton 仍处于禁用状态。 任何人都可以指出我需要去哪里的正确方向吗?
richWindow.Loaded +=
{
loadedButton.IsEnabled = false;
};
richWindow.Closing +=
{
loadedButton.IsEnabled = true;
}
我想你想要的是这样的:
private void loadButton_Click(object sender, RoutedEventArgs e)
{
var richWindow = RichTextWindow.GetWindow(new RichTextWindow());
richWindow.Closed += (s, e) => loadButton.IsEnabled = true;
loadButton.IsEnabled = false;
richWindow.Show();
}
基本上,在打开 window 之前禁用该按钮。然后,监听 window 关闭并再次启用按钮。