C# 在主窗体为“时显示小窗体”;“锁定”;

C# 在主窗体为“时显示小窗体”;“锁定”;,c#,wpf,forms,login,C#,Wpf,Forms,Login,我正在考虑编写一个WPF程序,在应用程序启动时需要登录名和密码。 我考虑使用两个文本框作为登录表单的小表单。用户必须填写详细信息,然后应用程序的主窗体将被解锁。 你将如何解决这个问题 感谢您的回答,daemonsvk这是Window.ShowDialog()调用的标准行为。其他窗口将被禁用。我会将初始启动表单设置为您的登录页面,并对用户进行身份验证,如果用户的详细信息正确,则隐藏登录表单并向您显示其他表单 if(user is authed) { this.Hide(); //Hide

我正在考虑编写一个WPF程序,在应用程序启动时需要登录名和密码。 我考虑使用两个文本框作为登录表单的小表单。用户必须填写详细信息,然后应用程序的主窗体将被解锁。 你将如何解决这个问题


感谢您的回答,daemonsvk这是Window.ShowDialog()调用的标准行为。其他窗口将被禁用。

我会将初始启动表单设置为您的登录页面,并对用户进行身份验证,如果用户的详细信息正确,则隐藏登录表单并向您显示其他表单

if(user is authed)
{
    this.Hide(); //Hide the login form
    mainAppForm.Show(); //or Form.ShowDialog(); //Shows the main form
}

最简单的方法是首先显示登录表单(使用
ShowDialog
,它会阻塞,即等待表单关闭后再继续下一行代码)。如果登录成功,则处理登录表单,然后显示主表单;如果登录失败,则结束应用程序

但是,如果您希望您的主窗体在登录窗体下面可见(这不是不合理的要求),那么您需要首先显示主窗体,然后从主窗体中的方法(以模式)显示登录窗体。在WinForms中,这需要某种技巧,因为您无法从主窗体的构造函数或其加载事件中显示登录窗体(因为当登录窗体出现时,主窗体还不可见)


WPF现在可以更好地处理这个问题。

您目前有哪些代码?这听起来也很像csc 102作业分配窗口“锁定”下面的窗口的标准术语是“模态”,如“打开模态对话框”。相反的是非模态。