我正在制作一个具有登录窗口和主窗口的程序。我想知道隐藏窗口是否比关闭窗口对性能有更大的影响。
我已经写下了这两个选项,请告知是否有更好的方法。
private void Login()
{
DataMatrixWindow dmWindow = new DataMatrixWindow(); // Creates new Datamatrix window
dmWindow.Show();
Close(); // Closes login window
}
或者使“登录”窗口一直处于活动状态,并在需要时显示/隐藏它。
private void Login()
{
DataMatrixWindow dmWindow = new DataMatrixWindow(); // Creates new Datamatrix window
dmWindow.Show();
Visibility = Visibility.Collapsed; // Hides login window
}
MSDN
不会指出如果未关闭窗口,可能会导致性能下降。
Window.Close Method:窗口创建的非托管资源 被处置。
Window.Closing Event:如果要显示和隐藏多个窗口 时间在应用程序的生命周期中,而您不想 每次显示窗口时都要重新实例化,您可以处理 关闭事件,将其取消,然后调用Hide方法。然后,您可以致电 在同一实例上显示以重新打开它。
更多详细信息
答案 0 :(得分:2)
当您使用Visibility.Collapsed时,它不会从可视树中删除您的窗口,因此在不可见的情况下会对性能产生影响。 要自己了解这种性能影响,您可以做两件事:
希望这会有所帮助。
答案 1 :(得分:1)
我想知道隐藏窗口是否比关闭窗口对性能有更大的影响。
可能是。关闭并显示一个简单的窗口(例如登录表单)不会明显影响性能,因此,我建议您在登录后关闭该窗口,并在需要和再次登录时显示该窗口的另一个实例。当然,这比登录后在后台打开窗口更好。至少在我看来。