WPF检测窗口关闭事件并与按钮事件耦合

时间:2015-05-25 04:14:34

标签: c# wpf button event-handling

两天后,我尝试了各种方法,以便在loadButton上单击时,它会打开一个辅助窗口并禁用loadButton;然后,当该辅助窗口关闭时,将重新启用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后,它会禁用。但是,在关闭新窗口时,仍然禁用loadButton。 任何人都可以指出我正确的方向我需要去哪里吗?

2 个答案:

答案 0 :(得分:3)

我认为你想要的是这样的:

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();
}

基本上,在打开窗口之前禁用按钮。然后,监听要关闭的窗口并再次启用该按钮。

答案 1 :(得分:0)

richWindow.Loaded +=
{
     loadedButton.IsEnabled = false;
 };

richWindow.Closing +=
{
    loadedButton.IsEnabled = true;
 }