我在基于棱镜的WPF应用程序中有一个登录序列,该序列在显示主窗口之前先显示登录屏幕。在我的Bootstrapper类中,InitializeShell方法看起来像这样
protected override void InitializeShell()
{
var logon = new LogOnView();
bool? res = logon.ShowDialog();
if (!res ?? true)
{
Application.Current.Shutdown(1);
}
else
{
Application.Current.MainWindow.Show();
}
}
这可以按预期工作,并且如果用户登录,使用该应用程序然后将其关闭,则很好。
我现在想要做的是允许用户注销,或者以实用的方式强制注销。
如果我在MainWindowViewModel中使用与上面类似的代码来尝试杀死MainWindow并显示不起作用的LogOnView。
几乎感觉就像我需要某种窗口管理器来显示和隐藏两个屏幕,一旦引导程序完成操作,或者让引导程序响应MainWindow之类的事件,该屏幕就会被初始化。
实现此目标的最佳方法是什么?