wpf 如何关闭一个窗口,但仍然有应用程序当前活动?

wtlkbnrh  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(154)

假设我有两个窗口:InputWindow和DisplayWindow
当前:我想使用InputWindow通过App变量保存数据

// in InputWindow
(App.Current as App).u_id = obj.id;

字符串
其中u_id是app.xaml.cs中定义的对象i,obj.id是InputWindow中的输入变量。
但是,当我关闭InputWindow并显示DisplayWindow时:

// in InputWindow
DisplayWindow window = new DisplayWindow();
window.Show();
Application.Current.MainWindow.Close();


该应用程序还杀死InputWindow中的数据。
所以我的问题是:
有没有办法把数据从关闭的窗口保存到打开的窗口?

tzcvj98z

tzcvj98z1#

Application.ShutdownMode设置为ShutdownMode.OnExplicitShutdown
您可以在App.xaml或C#中的任何其他地方执行此操作。

<Application ... ShutdownMode="OnExplicitShutdown>
    ...
</Application>

字符串
或者在您的App.xaml.cs中:

ShutdownMode = ShutdownMode.OnExplicitShutdown;


或者其他地方:

Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;


要关闭应用程序,您需要调用Application.Shutdown()

Application.Current.Shutdown();


您还可以将Application.ShutdownMode设置为OnLastWindowClose,以便在最后一个窗口关闭时(而不是在主窗口关闭时)关闭应用程序。你可以用上面描述的任何一种方法来做到这一点。
然而,听起来你想让你的主窗口保持活跃的唯一原因是你可以把它作为一个数据存储。我建议使用一个单独的对象作为数据存储,并从InputWindow和DisplayWindow引用它。

tf7tbtn2

tf7tbtn22#

Application.Current.MainWindow.Hide();

字符串
您可以使用此行隐藏窗口...也可以使用构造函数将要使用的信息传递到新窗口中。

DisplayWindow window = new DisplayWindow(object myObject);


该构造函数必须具有您想要传递的信息,但这也可以解决这个问题。

相关问题