【问题标题】:WPF change main window opacity only while secod window is closeWPF 仅在第二个窗口关闭时更改主窗口不透明度
【发布时间】:2015-01-23 07:06:07
【问题描述】:

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

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我在打开第二个窗口时成功更改了主窗口的不透明度,但是当我关闭第二个窗口时我不知道如何恢复不透明度。
  • 在显示第二个窗口之前,从主窗口订阅它的 Closing 事件。在该事件处理程序中将不透明度设置回原始值。
  • 如何显示第二个窗口?是否作为对话框?
  • 然后您可以在调用 ShowDialog() 之前和之后简单地更改属性。不需要任何事件处理。

标签: c# wpf opacity


【解决方案1】:

知道了……

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我希望主窗口 (window1) 在 window2 打开时更改不透明度。当我将关闭 window2 时,window1 将改变不透明度。我将 window2 作为对话框打开。我不明白将代码放在上面的位置...对不起。上面的代码将打开一个新窗口1..我不想要它。
    • 如果您认为以上内容有用且合适,请将其标记为答案。
    猜你喜欢
    • 2019-06-01
    • 1970-01-01
    • 2015-01-23
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多