从Windows中的屏幕锁定(Win + L)恢复后,WPF UI冻结

时间:2016-11-22 10:00:14

标签: c# wpf

我有两个WPF表单,它们将相互交互。当我登录到我的第一个表单时,它会隐藏,并且在我成功登录后显示第二个表单。

然而,当我执行屏幕锁定(Win + L)并恢复时,UI会冻结,但我可以在我的应用程序中收到通知,我可以关闭它,但我的计时器在UI和其他控件冻结。

我发现这个问题的触发器隐藏了我的第一个表单,因为我尝试在我的第一个表单中注释Hide()函数并且进展顺利。我试图将我的表格的第一个实例传递到第二个实例来解决它,但它并没有顺利完成。

当我在第一种形式中调用Hide()时,为什么第二种形式会冻结?对此有何解决方案?

注意:我的应用程序采用单件模式。

LoginForm.cs(第1版)

MainWindow.mainWindow.setJSONVisible(getUsers);
MainWindow.mainWindow.SetLoginForm(this);
MainWindow.mainWindow.Show();

MainForm.cs(第二种形式)

private LoginForm login;
// This is triggered when the window's visibility is changed.
private void Window_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
       if (IsVisible)
       {
             if(_visible!=null)
                    Operations.DisplayUsers(_visible);
             Cursor = System.Windows.Input.Cursors.Wait;
             login.Hide();
       }
}

由于

1 个答案:

答案 0 :(得分:0)

解决了一个类似的问题,我的启动画面没有关闭,只是隐藏,更改代码后关闭它会停止冻结。