我有两个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();
}
}
由于
答案 0 :(得分:0)
解决了一个类似的问题,我的启动画面没有关闭,只是隐藏,更改代码后关闭它会停止冻结。