C# WPF仅在secod窗口关闭时更改主窗口不透明度

C# WPF仅在secod窗口关闭时更改主窗口不透明度,c#,wpf,opacity,C#,Wpf,Opacity,我有一个WPF应用程序,主窗口和从主窗口按钮打开的第二个窗口。当第二个窗口打开时,我希望主窗口的不透明度改变,当我将其关闭时,主窗口的不透明度将恢复为defaut。这是第一个窗口调用第二个窗口的代码 var newWindow = new Window1(); newWindow.ShowDialog(); 您可以向newWindow添加事件处理程序以检测Window1的关闭 var newWindow = new Window1(); Application.Current.MainWind

我有一个WPF应用程序,主窗口和从主窗口按钮打开的第二个窗口。当第二个窗口打开时,我希望主窗口的不透明度改变,当我将其关闭时,主窗口的不透明度将恢复为defaut。

这是第一个窗口调用第二个窗口的代码

var newWindow = new Window1();
newWindow.ShowDialog();
您可以向newWindow添加事件处理程序以检测Window1的关闭

var newWindow = new Window1();
Application.Current.MainWindow.Opacity = 0.5;
newWindow.Closed += (sender, e) =>
{
    Application.Current.MainWindow.Opacity = 1;
};


newWindow.ShowDialog();
明白了

    private void Window_Closed(object sender, EventArgs e)
    {
        Application.Current.MainWindow.Opacity = 1;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Application.Current.MainWindow.Opacity = 1;
    }

到目前为止,您尝试了什么?我在打开第二个窗口时成功更改了主窗口的不透明度,但我不知道在关闭第二个窗口时如何恢复不透明度。在显示第二个窗口之前,请从主窗口订阅其关闭事件。在该事件处理程序中,将不透明度设置回原始值。如何显示第二个窗口?是否作为对话框?然后您只需在调用ShowDialog前后更改属性即可。不需要任何事件处理。我希望主窗口window1在window2打开时更改不透明度。当我关闭window2时,window1将更改回不透明度。我打开了window2作为对话框。我不明白上面的代码放在哪里…对不起。上述代码将打开一个新窗口1。。我不想要它。如果你觉得上面的答案有用且合适,就把它标记为答案。