首先,我们在C#、WPF、桌面应用(可以是.NET 3.5)。
我需要在应用程序启动时显示登录窗口,如果登录成功,隐藏登录窗口并显示主应用程序窗口。此外,当主窗口关闭时,应该会再次看到登录窗口。如果登录窗口关闭,应用程序将退出。
更难的奖励:当“记住用户”选项被选中时,登录窗口被跳过,用户自动登录,直接显示主窗口。(请不要考虑选项是如何存储的,假设您只知道它并且在变量中有值)。
什么是应用程序起点(意味着哪个窗口被认为在 app.xaml StartupUri 属性中)?
你将如何解决架构问题?使用 App_Startup 事件并从那时起显示一些窗口的最佳方式是什么?
你会使用什么类型的 App.ShutdownMode?那将如何运作?您可以使用“OneLastWindowClose”、“OnMainWindowClose”或“OnExplicitShutdown”。你的选择是什么,为什么?
一般来说,我对“什么叫什么,什么是应用程序'root',什么调用关闭应用程序”感兴趣。
我已经为我的问题找到了可行的解决方案,但我很感兴趣,如果你们中的任何人遇到过这个问题,你们是如何解决的?我很乐意分享我的方法,但我不想首先限制你的想法。
感谢您的贡献。
PS:我正在使用 MVVM 框架,这使它有点混乱,但重点仍然存在。我也使用 Ninject 作为 IoC,但这个问题当然仍然存在。我没有提到这些信息是为了使问题尽可能清楚。我还必须处理异常(登录期间与服务器或数据库的通信可能会失败),并且为了让它真正有趣,我必须显示交互式“启动窗口”,指示应用程序的功能(加载、与服务器通信、自动登录)。但请暂时远离这些要求,我们稍后再讨论。